Definir linhas de base para testes de carga

Concluído

Agora que você definiu os testes de carga e os valores limite, vamos usá-los para criar suas linhas de base.

Uma linha de base é um conjunto de critérios para métricas que você usa para avaliar se um teste falhou ou foi bem-sucedido. Por exemplo, seus critérios podem ser:

  • Média de pedidos por segundo.
  • Taxa de erro.
  • Tempo máximo de resposta.

Para configurar linhas de base para testes de carga, você precisa:

  1. Definir as linhas de base e os critérios de teste para fluxos de usuários individuais e a solução geral.

  2. Ajuste os limites para execuções regulares para verificar se o aplicativo continua a fornecer o desempenho esperado e não produz erros.

  3. Use uma linha de base separada para testes de caos que tolerem os picos esperados nas taxas de erro e o desempenho temporariamente reduzido.

Esta atividade é contínua e precisa ser feita regularmente. Por exemplo, você precisa revisar as linhas de base depois de introduzir novos recursos ou alterar SKUs de serviço.

Usar o Teste de Carga do Azure para avaliar limites

Durante a fase de desenvolvimento, o desempenho dos componentes e os requisitos de recursos muitas vezes não são claramente conhecidos. Os testes de carga podem ajudá-lo a identificar o desempenho esperado, incluindo o comportamento de expansão, da solução geral e seus componentes. Eles também podem ajudá-lo a identificar os limites esperados para a construção de sua linha de base.

Faça as seguintes perguntas e reavalie regularmente:

  • Quanto tempo leva para ser concluída uma operação individual, fluxo de usuário ou chamada de API?
  • Quantas solicitações, operações e usuários simultâneos um componente pode atender por segundo?
  • Quantos recursos são consumidos?
  • Como 10, 50 e 100 usuários simultâneos afetam a infraestrutura subjacente e o serviço back-end?
  • Quando os componentes devem ser dimensionados para dentro e para fora?

As respostas levam a testes e limiares. As solicitações por segundo, o tempo de resposta e a porcentagem de erro são exemplos aplicáveis para valores de limite.

Depois de anotar os detalhes, use valores para analisar e avaliar o desempenho da solução geral e seus componentes de forma consistente. Use também a linha de base para identificar o efeito de mudanças e desvios do desempenho esperado.

Ao executar os testes, você pode ter requisitos diferentes para casos de uso especiais, como um componente defeituoso ou um pico de carga. Para esses casos, podem ser esperadas e aceitáveis taxas de erro mais elevadas ou pedidos por segundo mais baixos. Você pode ter uma linha de base separada que contenha limites ajustados para acomodar essas situações. Por exemplo:

  • Cenários de alta carga nos quais uma operação de expansão é esperada e necessária. Pode haver degradação temporária do desempenho até que a operação seja concluída.
  • Experimentos de caos, como parte de um pipeline de validação contínua. Uma taxa de erro mais alta pode ser esperada até que as medidas de resiliência comecem a auto-curar o aplicativo ou fazer failover para outra região.

Use o Teste de Carga do Azure para avaliar o desempenho do seu sistema em relação aos limites definidos. O serviço tem uma capacidade interna de critérios de teste. Ou seja, você pode especificar critérios que um teste de carga precisa passar.

Você pode usar critérios de teste para implementar diferentes linhas de base, conforme mostrado na captura de tela de exemplo a seguir.

Captura de tela do portal do Azure de uma tabela que mostra critérios de teste de exemplo.

Você pode especificar esses critérios de teste em JSON e usar a API para adicioná-los ao seu teste de carga. Eis um exemplo:

[
  {
    "passFailMetrics": {
      "<guid-1>": {
        "clientmetric": "requests_per_sec",
        "aggregate": "avg",
        "condition": "<",
        "value": 1200.0,
        "actualValue": 0.0,
        "result": null,
        "action": "continue"
      },
      "<guid-2>": {
        "clientmetric": "response_time_ms",
        "aggregate": "avg",
        "condition": ">",
        "value": 75.0,
        "actualValue": 0.0,
        "action": "continue"
      },
      "<guid-3>": {
        "clientmetric": "error",
        "aggregate": "percentage",
        "condition": ">",
        "value": 0.0,
        "actualValue": 0.0,
        "action": "continue"
      }
    }
  }
]

Outro aspeto importante da validação contínua é injetar testes que simulam problemas do mundo real. Na próxima unidade, você aprenderá sobre como adicionar experimentos de caos ao seu processo de validação.

Verificação de conhecimento

1.

Quantas linhas de base são necessárias?

2.

Uma linha de base define o desempenho que a implantação pode fornecer?

3.

Quando é que as bases de referência devem ser avaliadas e atualizadas?