Configurar o Teste de Carga do Azure para carga de 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 Teste de Carga do Azure.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Se não tiver uma subscrição 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 paralelas do mecanismo de teste, 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 picos de carga.

Dependendo do tipo de teste de carga, baseado em URL ou baseado em 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 utilizadores virtuais Load pattern
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, step, spike).
Baseado em JMeter Especificar o número de motores de ensaio na configuração de ensaio 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 carga para um teste de carga baseado em URL:

  1. No portal do Azure, vá para seu recurso de Teste de Carga do Azure.

  2. No painel de navegação esquerdo, selecione Testes para visualizar todos os testes.

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

    Captura de ecrã que mostra a lista de testes de carga e o botão 'Editar'.

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

  4. Na página Noções básicas, certifique-se de selecionar Ativar 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.

    Captura de ecrã do separador 'Carregar' no painel 'Editar teste'.

  7. Selecione o valor Padrão de carga 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.

    Captura de ecrã do separador 'Carregar' ao editar um teste de carga, mostrando como configurar o padrão de carregamento.

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, vá para seu recurso de Teste de Carga do Azure.

  2. No painel de navegação esquerdo, selecione Testes para visualizar todos os testes.

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

    Captura de ecrã que mostra a lista de testes de carga e o botão 'Editar'.

    Como alternativa, você também pode editar a configuração de teste na página de detalhes do teste. Para fazer isso, selecione Configurar e, 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.

    Captura de ecrã do separador 'Carregar' no painel 'Editar teste'.

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

Monitorar métricas de instância do mecanismo

Para garantir que as instâncias do mecanismo de teste não sejam um gargalo 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 recursos para cada instância:

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

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

Para visualizar as métricas de recursos 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 seu teste de carga para exibir a lista de execuções de teste.

  3. Na lista de execução 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 recursos do mecanismo.

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

Captura de tela que mostra as métricas de integridade do mecanismo de carga no painel de execução de teste.

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

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 seguintes etapas:

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

  • Certifique-se de que seu script seja eficaz, sem código redundante.

  • Se o estado de funcionamento do motor for desconhecido, execute novamente o ensaio.

Determinar solicitações por segundo

O número máximo de solicitações por segundo (RPS) que o Teste de Carga do Azure pode gerar para seu teste de carga depende da latência do aplicativo e do número de usuários virtuais (VUs). 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 = (# 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á atingir cerca de 100.000 RPS (2000 * 1/0,02s).

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

Nota

O Apache JMeter apenas relata 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 do que o valor máximo. As causas possíveis podem ser que o servidor esteja muito ocupado para lidar com a solicitação ou que um certificado TLS/SSL esteja faltando. Para diagnosticar problemas de conexão, você pode verificar o gráfico 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. Todas 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 = (# threads) * (# 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 de acordo. 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 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 de 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.