Configurar o Teste de Carga do Azure para carga em alta escala

Neste artigo, você aprenderá a configurar seu teste de carga para alta escala com o Teste de Carga do Azure. O Teste de Carga do Azure abstrai a complexidade do provisionamento da infraestrutura para simular tráfego de alta escala. Para dimensionar um teste de carga, você pode configurar o número de instâncias paralelas do mecanismo de teste. Para obter uma distribuição de carga ideal, você pode monitorar as métricas de integridade da instância de teste no painel do Teste de Carga do Azure.

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

  • Um recurso de teste de carga existente do Azure. Para criar um recurso de teste de carga do Azure, consulte o guia de início rápido Criar e executar um teste de carga.

Configurar parâmetros de carga para um teste de carga

Para simular o tráfego de usuários para seu aplicativo, você pode configurar o padrão de carga e o número de usuários virtuais para os quais deseja simular a carga. Ao executar o teste de carga em muitas instâncias de mecanismo de teste paralelo, o Teste de Carga do Azure pode expandir o número de usuários virtuais que simulam o tráfego para seu aplicativo. O padrão de carga determina como a carga é distribuída ao longo da duração do teste de carga. Exemplos de padrões de carga são lineares, escalonados ou de carga de pico.

Dependendo do tipo de teste de carga, baseado em URL ou JMeter, você tem diferentes opções para configurar a carga de destino e o padrão de carga. A tabela a seguir lista as diferenças entre os dois tipos de teste.

Tipo de teste Número de usuários virtuais Padrão de carga
Baseado em URL (básico) Especifique o número de destino de usuários virtuais na configuração de teste de carga. Padrão de carga linear, baseado no tempo de ramp-up e no número de usuários virtuais.
Baseado em URL (avançado) Especifique o número de mecanismos de teste e o número de usuários virtuais por instância na configuração de teste de carga. Configure o padrão de carga (linear, etapa, pico).
Baseado em JMeter Especifique o número de mecanismos de teste na configuração de teste de carga. Especifique o número de usuários virtuais no script de teste. Configure o padrão de carga no script de teste.

Configurar parâmetros de carga para testes baseados em URL

Para especificar os parâmetros de carregamento para um teste de carga baseado em URL:

  1. No portal do Azure, acesse seu recurso de Teste de Carga do Azure.

  2. Na navegação à esquerda, selecione Testes para exibir todos os testes.

  3. Na lista, selecione o teste de carga e, em seguida, selecione Editar.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Como alternativa, você também pode editar a configuração de teste na página de detalhes do teste. Para fazer isso, selecione Configurare, em seguida, selecione Testar.

  4. Na página Noções básicas, selecione Habilitar configurações avançadas.

  5. Na página Editar teste, selecione a guia Carregar.

    Para testes baseados em URL, você pode configurar o número de instâncias paralelas do mecanismo de teste e o padrão de carga.

  6. Use o controle deslizante Instâncias do mecanismo para atualizar o número de instâncias paralelas do mecanismo de teste. Como alternativa, insira o valor de destino na caixa de entrada.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  7. Selecione o valor Padrão de carregamento na lista.

    Para cada padrão, preencha as definições de configuração correspondentes. O gráfico fornece uma representação visual do padrão de carga e seus parâmetros de configuração.

    Screenshot of the 'Load' tab when editing a load test, showing how to configure the load pattern.

Configurar parâmetros de carga para testes baseados em JMeter

Para especificar os parâmetros de carga para um teste de carga baseado em JMeter:

  1. No portal do Azure, acesse seu recurso de Teste de Carga do Azure.

  2. Na navegação à esquerda, selecione Testes para exibir todos os testes.

  3. Na lista, selecione o teste de carga e, em seguida, selecione Editar.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Como alternativa, você também pode editar a configuração de teste na página de detalhes do teste. Para fazer isso, selecione Configurare, em seguida, selecione Testar.

  4. Na página Editar teste, selecione a guia Carregar. Use o controle deslizante Instâncias do mecanismo para atualizar o número de instâncias do mecanismo de teste ou insira o valor diretamente na caixa de entrada.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  5. Selecione Aplicar para modificar o teste e usar a nova configuração ao executá-lo novamente.

Monitorar métricas da instância do mecanismo

Para garantir que as instâncias do mecanismo de teste não sejam um afunilamento de desempenho, você pode monitorar as métricas de recursos da instância do mecanismo de teste. Um alto uso de recursos para uma instância de teste pode influenciar negativamente os resultados do teste de carga.

O Teste de Carga do Azure relata quatro métricas de recurso para cada instância:

  • Percentual de CPU.
  • Porcentagem de memória.
  • Bytes de rede por segundo.
  • Número de usuários virtuais.

Uma instância do mecanismo de teste será considerada íntegra se o percentual médio de CPU ou o percentual de memória durante a execução do teste permanecer abaixo de 75%.

Para exibir as métricas de recurso do mecanismo:

  1. Vá para o recurso de Teste de Carga. No painel esquerdo, selecione Testes para exibir a lista de testes de carga.

  2. Na lista, selecione o teste de carga para exibir a lista de execuções de teste.

  3. Na lista de execuções de teste, selecione sua execução de teste.

  4. No painel de execução de teste, selecione a Integridade do mecanismo para exibir as métricas de recurso do mecanismo.

    Opcionalmente, selecione uma instância específica do mecanismo de teste usando os controles de filtros.

Screenshot that shows the load engine health metrics on the test run dashboard.

Solucionar problemas de instâncias não íntegras do mecanismo

Se uma ou várias instâncias mostrarem um alto uso de recursos, isso poderá afetar os resultados do teste. Para resolver o problema, tente uma ou mais das etapas a seguir:

  • Reduza o número de threads (usuários virtuais) por mecanismo de teste. Para atingir um número ideal de usuários virtuais, você pode aumentar o número de instâncias do mecanismo para o teste de carga.

  • Verifique se o script está em vigor, sem nenhum código redundante.

  • Se o status de integridade do mecanismo for desconhecido, execute novamente o teste.

Determinar solicitações por segundo

O número máximo de RPS (solicitações por segundo) que o Teste de Carga do Azure pode gerar para o seu teste de carga depende da latência do aplicativo e do número de VUs (usuários virtuais). A latência do aplicativo é o tempo total desde o envio de uma solicitação de aplicativo pelo mecanismo de teste até o recebimento da resposta. A contagem de usuários virtuais é o número de solicitações paralelas que o Teste de Carga do Azure executa em um determinado momento.

Para calcular o número de solicitações por segundo, aplique a seguinte fórmula: RPS = (nº de VUs) * (1/latência em segundos).

Por exemplo, se a latência do aplicativo for de 20 milissegundos (0,02 segundos) e você estiver gerando uma carga de 2,000 VUs, poderá obter cerca de 100,000 RPS (2000 * 1/0.02s).

Para atingir um número de destino de solicitações por segundo, configure o número total de usuários virtuais para o teste de carga.

Observação

O Apache JMeter relata apenas solicitações que chegaram ao servidor e voltaram, bem-sucedidas ou não. Se o Apache JMeter não conseguir se conectar ao seu aplicativo, o número real de solicitações por segundo será menor que o valor máximo. Possíveis causas podem ser que o servidor está muito ocupado para lidar com a solicitação ou que um certificado TLS/SSL está faltando. Para diagnosticar problemas de conexão, você pode verificar o gráfico de Erros no painel de teste de carga e baixar os arquivos de log de teste de carga.

Instâncias do mecanismo de teste e usuários virtuais

No script Apache JMeter, você pode especificar o número de threads paralelos. Cada thread representa um usuário virtual que acessa o ponto de extremidade do aplicativo. Recomendamos que você mantenha o número de threads em um script abaixo de um máximo de 250.

No Teste de Carga do Azure, as instâncias do mecanismo de teste são responsáveis pela execução do script Apache JMeter. As instâncias do mecanismo de teste são executadas em paralelo. Você pode configurar o número de instâncias para um teste de carga.

O número total de usuários virtuais para um teste de carga é: VUs = (nº de threads) * (nº de instâncias do mecanismo de teste).

Para simular um número de destino de usuários virtuais, você pode configurar os threads paralelos no script JMeter e as instâncias do mecanismo para o teste de carga adequadamente. Monitore as métricas do mecanismo de teste para otimizar o número de instâncias.

Por exemplo, para simular 1,000 usuários virtuais, defina o número de threads no script do Apache JMeter como 250. Em seguida, configure o teste de carga com quatro instâncias do mecanismo de teste (ou seja, 4 x 250 threads).

O local do recurso do Teste de Carga do Azure determina o local das instâncias do mecanismo de teste. Todas as instâncias do mecanismo de teste em um recurso de Teste de Carga são hospedadas na mesma região do Azure.