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ê aprenderá 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 de fluxo do sistema pode ter um impacto na experiência do usuário. Por exemplo, uma atividade assíncrona que coleta 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, dependências, uso esperado, disponibilidade, desempenho e metas de escalabilidade.

  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 logins 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 o limite da duração média de carregamento de página para cada etapa para ser inferior a 500 milissegundos e oferecer suporte a até 100 usuários simultâneos.

Com todos os valores de limite definidos, você está pronto para 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?