Definir testes de carga com base nos principais fluxos de usuários
O teste de carga é uma parte importante da validação contínua. Para começar, é necessário identificar os fluxos do aplicativo. Nesta unidade, você aprende sobre os fluxos de usuário e sistema, por que eles são importantes e os critérios de design para os testes.
O que são fluxos de aplicativo?
Um fluxo é composto de interações do aplicativo necessárias para concluir uma tarefa.
Fluxo de usuário
Esses fluxos indicam como os usuários interagem com o aplicativo. No cenário da Contoso Shoes, o processo de check-out para comprar itens é um exemplo de fluxo de usuário. Ele conta com os seguintes componentes que participam do gerenciamento de estoque:
- Aplicativo Web de front-end
- Lógica de check-out no Azure Functions
- Banco de dados de back-end no Azure Cosmos DB
De uma perspectiva de missão crítica, esses componentes precisam ser altamente disponíveis e resilientes a falhas. Por exemplo, a página da Web de front-end precisa ser carregada rapidamente porque a organização espera um grande número de usuários simultâneos.
Fluxo do sistema
Esses fluxos normalmente não são voltados ao usuário, mas uma interrupção ou degradação nos componentes do fluxo do sistema pode afetar a experiência do usuário. Por exemplo, um fluxo de sistema pode ser uma atividade assíncrona que coleta pedidos de um banco de dados e gera etiquetas de remessa.
Observação
A maioria dos aplicativos tem diversos fluxos. Cada fluxo pode interagir com diversos componentes da arquitetura. Além disso, um componente pode aparecer em mais de um fluxo. É importante entender quais fluxos são afetados quando um componente falha.
Definir um teste de carga e os respectivos valores limite
Um teste de carga simula o tráfego real para testar o desempenho do aplicativo. No entanto, o objetivo não é gerar uma grande carga que desestabilize o sistema. Isso pode ser feito por meio de testes de estresse.
Um teste de carga pode ajudar a identificar o desempenho, os limites de desempenho, a utilização de recursos e o comportamento de dimensionamento ideal dos componentes de um fluxo de usuário. Seus testes de carga devem refletir cada fluxo de usuário e fluxo do sistema relevante. Um bom design requer conhecimento do aplicativo. Comece fazendo perguntas como as seguintes:
- Quais chamadas de API precisam ser feitas?
- Qual é a sequência de chamadas de API?
- Quais dados de teste devem ser usados com as chamadas de API?
Com base nas respostas:
Identifique os principais cenários e as dependências, e defina metas para o uso esperado, a disponibilidade, o desempenho e a escalabilidade.
Defina um conjunto de valores limite mensuráveis para quantificar o desempenho esperado dos principais cenários. Por exemplo, para um componente de aplicativo, é possível considerar valores limite para o número esperado de credenciais de usuário, solicitações por segundo de uma API e operações por segundo de um processo em segundo plano.
Use os valores limite para definir um teste de carga que gere um tráfego realista a fim de testar o desempenho do aplicativo e validar as operações de dimensionamento esperadas e as atividades relacionadas. Use esses valores limite a fim de desenvolver um modelo de integridade para o aplicativo que abranja tanto o teste quanto a produção.
No exemplo do fluxo do processo de check-out, é possível definir um limite da duração média do carregamento da página em cada etapa para menos de 500 milissegundos e dar suporte a até 100 usuários simultâneos.
Agora que todos os valores de limite estão definidos, você pode implementar o teste de carga. Este módulo usa o Teste de Carga do Azure.
Embora seja possível configurar e implantar o Teste de Carga do Azure por meio do portal do Azure, uma abordagem programática é altamente recomendada. Use APIs para implantar, configurar e executar os testes de maneira automatizada. Essa abordagem é discutida na próxima unidade.