Definir testes de carga com base nos principais fluxos de usuários

Concluído

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:

  1. Identifique os principais cenários e dependências e defina metas para uso, disponibilidade, desempenho e escalabilidade esperados.

  2. 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.

  3. 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.

Verificação de conhecimento

1.

Todos os fluxos de utilizadores e sistemas são igualmente importantes?

2.

Uma interrupção de um componente sempre resulta em uma degradação do serviço?

3.

Um teste de carga pode ajudá-lo a avaliar o desempenho esperado de um fluxo de usuário?