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, você precisa identificar fluxos de aplicativos. Nesta unidade, você aprende sobre os fluxos do usuário e do sistema, por que eles são importantes e os critérios de design para os testes.
O que são fluxos de aplicativos?
Um fluxo é composto por interações de aplicativo necessárias para concluir uma tarefa.
Fluxo de usuários
Esses fluxos indicam como os usuários interagem com seu aplicativo. No cenário da Contoso Shoes, o processo de checkout para a compra de itens é um exemplo de um fluxo de usuário. Possui os seguintes componentes que participam da gestão de estoque:
- Aplicação Web front-end
- Lógica de check-out no Azure Functions
- Banco de dados de back-end no Azure Cosmos DB
De uma perspetiva de missão crítica, esses componentes precisam estar altamente disponíveis e resilientes a falhas. Por exemplo, a página da Web 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 para o usuário, mas uma interrupção ou degradação dos componentes do fluxo do sistema pode afetar a experiência do usuário. Por exemplo, um fluxo do sistema pode ser uma atividade assíncrona que pega pedidos de um banco de dados e gera etiquetas de remessa.
Nota
A maioria dos aplicativos tem vários fluxos. Cada fluxo pode tocar vários 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 seus valores limite
Um teste de carga simula o tráfego do mundo real para testar o desempenho do seu aplicativo. No entanto, o objetivo não é gerar uma grande carga para quebrar o seu sistema. Esse objetivo pode ser alcançado através de testes de esforço.
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 todos os fluxos de usuários e sistemas relevantes. Um bom design requer conhecimento da aplicação. Comece por fazer perguntas, tais como:
- 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 dependências e defina metas para uso, disponibilidade, desempenho e escalabilidade esperados.
Defina um conjunto de valores de limite mensuráveis para quantificar o desempenho esperado dos principais cenários. Por exemplo, para um componente de aplicativo, você pode considerar valores de limite para o número esperado de entradas de usuário, solicitações por segundo de uma API e operações por segundo de um processo em segundo plano.
Use os valores de limite para definir um teste de carga que gere tráfego realista para testar o desempenho do aplicativo, validar operações de escala esperadas e atividades relacionadas. Use esses valores de limite para desenvolver um modelo de integridade para o aplicativo que abranja testes e produção.
No exemplo de fluxo do processo de checkout, você pode definir um limite para que a duração média de carregamento de página para cada etapa seja inferior a 500 milissegundos e ofereça 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 você possa 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 forma automatizada. Essa abordagem será discutida na próxima unidade.