Principais conceitos para novos usuários do Azure Load Testing

Saiba mais sobre os principais conceitos e componentes do Teste de Carga do Azure. Essas informações podem ajudá-lo a configurar com mais eficiência um teste de carga para identificar problemas de desempenho em seu aplicativo.

Conceitos gerais de ensaio de carga

Saiba mais sobre os principais conceitos relacionados à execução de testes de carga.

Utilizadores virtuais

Um usuário virtual executa um caso de teste específico em seu aplicativo de servidor e é executado independentemente de outros usuários virtuais. Você pode usar vários usuários virtuais para simular conexões simultâneas com seu aplicativo de servidor.

Apache JMeter também se refere a usuários virtuais como threads. No script de teste JMeter, um elemento de grupo de threads permite especificar o pool de usuários virtuais. Saiba mais sobre grupos de threads na documentação do Apache JMeter.

O número total de usuários virtuais para seu teste de carga depende do número de usuários virtuais no script de teste e do número de instâncias do mecanismo de teste.

A fórmula é: Total de usuários virtuais = (usuários virtuais no arquivo JMX) * (número de instâncias do mecanismo de teste).

Você pode atingir o número de destino de usuários virtuais configurando o número de instâncias do mecanismo de teste, o número de usuários virtuais no script de teste ou uma combinação de ambos.

Tempo de ramp-up

O tempo de ramp-up é a quantidade de tempo para chegar ao número total de usuários virtuais para o teste de carga. Se o número de usuários virtuais for 20 e o tempo de ramp-up for de 120 segundos, levará 120 segundos para chegar a todos os 20 usuários virtuais. Cada usuário virtual iniciará 6 (120/20) segundos após o usuário anterior ter sido iniciado.

Tempo de resposta

O tempo de resposta de uma solicitação individual, ou tempo decorrido no JMeter, é o tempo total desde imediatamente antes do envio da solicitação até logo após o recebimento da última resposta. O tempo de resposta não inclui o tempo para renderizar a resposta. Qualquer código de cliente, como JavaScript, não é processado durante o teste de carga.

Latência

A latência de um pedido individual é o tempo total desde imediatamente antes de enviar o pedido até logo após a primeira resposta ser recebida. A latência inclui todo o processamento necessário para montar a solicitação e montar a primeira parte da resposta.

Solicitações por segundo (RPS)

Solicitações por segundo (RPS), ou taxa de transferência, é o número total de solicitações para o aplicativo de servidor que seu teste de carga gera por segundo.

A fórmula é: RPS = (número de solicitações) / (tempo total em segundos).

O tempo é calculado desde o início da primeira amostra até ao final da última amostra. Esse tempo inclui quaisquer intervalos entre amostras, por exemplo, se o script de teste contiver temporizadores.

Outra maneira de calcular o RPS é com base na latência média do aplicativo e no número de usuários virtuais. Para simular um número específico de RPS com um teste de carga, dada a latência do aplicativo, você pode calcular o número necessário de usuários virtuais.

A fórmula é: Usuários virtuais = (RPS) * (latência em segundos).

Por exemplo, dada uma latência de aplicativo de 20 milissegundos (0,02 segundos), para simular 100.000 RPS, você deve configurar o teste de carga com 2.000 usuários virtuais (100.000 * 0,02).

Componentes do Azure Load Testing

Saiba mais sobre os principais conceitos e componentes do Teste de Carga do Azure. O diagrama a seguir fornece uma visão geral de como os diferentes conceitos se relacionam entre si.

Diagram that shows how the different concepts in Azure Load Testing relate to one another.

Recurso de teste de carga

O recurso de teste de carga do Azure é o recurso de nível superior para suas atividades de teste de carga. Este recurso fornece um local centralizado para exibir e gerenciar testes de carga, resultados de testes e artefatos relacionados.

Ao criar um recurso de teste de carga, você especifica seu local, que determina o local dos mecanismos de teste. O Teste de Carga do Azure criptografa automaticamente todos os artefatos em seu recurso. Você pode escolher entre chaves gerenciadas pela Microsoft ou usar suas próprias chaves gerenciadas pelo cliente para criptografia.

Para executar um teste de carga para seu aplicativo, adicione um teste ao seu recurso de teste de carga. Um recurso pode conter zero ou mais testes.

Você pode usar o controle de acesso baseado em função do Azure para conceder acesso ao seu recurso de teste de carga e artefatos relacionados.

O Teste de Carga do Azure permite que você use identidades gerenciadas para acessar o Cofre de Chaves do Azure para armazenar parâmetros ou certificados secretos de teste de carga. Você pode usar uma identidade gerenciada atribuída pelo usuário ou pelo sistema.

Teste

Um teste descreve a configuração de teste de carga para seu aplicativo. Você adiciona um teste a um recurso de teste de carga existente do Azure.

Um teste contém um plano de teste, que descreve as etapas para invocar o ponto de extremidade do aplicativo. Você pode definir o plano de teste de duas maneiras:

O Teste de Carga do Azure dá suporte a todos os protocolos de comunicação suportados pelo JMeter, não apenas aos pontos de extremidade baseados em HTTP. Por exemplo, talvez você queira ler ou gravar em um banco de dados ou fila de mensagens no script de teste.

Atualmente, o Teste de Carga do Azure não oferece suporte a outras estruturas de teste além do Apache JMeter.

O teste também especifica as definições de configuração para executar o teste de carga:

Além disso, você pode carregar arquivos de dados de entrada CSV e arquivos de configuração JMeter para o teste.

Quando você inicia um teste, o Teste de Carga do Azure implanta o script de teste JMeter, arquivos relacionados e configuração nas instâncias do mecanismo de teste. Em seguida, as instâncias do mecanismo de teste iniciam o script de teste JMeter para simular a carga do aplicativo.

Sempre que você inicia um teste, o Teste de Carga do Azure cria uma execução de teste e a anexa ao teste.

Execução do teste

Uma execução de teste representa uma execução de um teste de carga. Quando você executa um teste, a execução de teste contém uma cópia das definições de configuração do teste associado.

Após a conclusão da execução do teste, você pode exibir e analisar os resultados do teste de carga no painel Teste de Carga do Azure no portal do Azure.

Como alternativa, você pode baixar os logs de teste e exportar o arquivo de resultados do teste.

Importante

Quando você atualiza um teste, as execuções de teste existentes não herdam automaticamente as novas configurações do teste. As novas configurações só são usadas por novas execuções de teste quando você executa o teste. Se você executar novamente uma execução de teste existente , as configurações originais da execução de teste serão usadas.

Motor de ensaio

Um mecanismo de teste é a infraestrutura de computação, gerenciada pela Microsoft que executa o script de teste Apache JMeter. As instâncias do mecanismo de teste executam o script JMeter em paralelo. Você pode expandir seu teste de carga configurando o número de instâncias do mecanismo de teste. Saiba como configurar o número de usuários virtuais ou simular um número de solicitações de destino por segundo.

Os mecanismos de teste são hospedados no mesmo local que seu recurso de Teste de Carga do Azure. Você pode configurar a região do Azure ao criar o recurso de teste de carga do Azure.

Enquanto o script de teste é executado, o Teste de Carga do Azure coleta e agrega os logs de trabalho do Apache JMeter de todas as instâncias do mecanismo de teste. Você pode baixar os logs para analisar erros durante o teste de carga.

Componente da aplicação

Ao executar um teste de carga para um aplicativo hospedado no Azure, você pode monitorar métricas de recursos para os diferentes componentes do aplicativo do Azure (métricas do lado do servidor). Enquanto o teste de carga é executado, e após a conclusão do teste, você pode monitorar e analisar as métricas de recursos no painel de Teste de Carga do Azure.

Ao criar ou atualizar um teste de carga, você pode configurar a lista de componentes do aplicativo que o Teste de Carga do Azure monitorará. Você pode modificar a lista de métricas de recursos padrão para cada componente do aplicativo.

Saiba mais sobre quais tipos de recursos do Azure são suportados pelo Teste de Carga do Azure.

Métricas

Durante um teste de carga, o Teste de Carga do Azure coleta métricas sobre a execução do teste. Existem dois tipos de métricas:

  • As métricas do lado do cliente são relatadas pelos mecanismos de teste. Essas métricas incluem o número de usuários virtuais, o tempo de resposta da solicitação, o número de solicitações com falha ou o número de solicitações por segundo. Você pode definir critérios de falha de teste com base nessas métricas do lado do cliente.

  • As métricas do lado do servidor estão disponíveis para aplicativos hospedados no Azure e fornecem informações sobre seus componentes de aplicativo do Azure. O Teste de Carga do Azure integra-se com o Azure Monitor, incluindo o Application Insights e o Container insights, para capturar detalhes dos serviços do Azure. Dependendo do tipo de serviço, diferentes métricas estão disponíveis. Por exemplo, as métricas podem ser para o número de leituras de banco de dados, o tipo de respostas HTTP ou o consumo de recursos de contêiner.

Agora você conhece os principais conceitos do Teste de Carga do Azure para começar a criar um teste de carga.