Principais conceitos para novos usuários do Teste de Carga do Azure

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 do teste de carga

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

Usuários 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.

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

O número total de usuários virtuais para o 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 alcançar 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 dos dois.

Tempo de aumento

O tempo de aumento é a quantidade de tempo para chegar ao número completo 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 início do usuário anterior.

Tempo de resposta

O tempo de resposta de uma solicitação individual, ou tempo decorrido no JMeter, é o tempo total desde pouco 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.

Latency

A latência de uma solicitação individual é o tempo total desde pouco antes do envio da solicitação até logo após o recebimento da primeira resposta. A latência inclui todo o processamento necessário para montar a solicitação e montar a primeira parte da resposta.

RPS (solicitações por segundo)

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

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

A hora é calculada a partir do início do primeiro exemplo até o final do último exemplo. Esse tempo inclui todos os intervalos entre exemplos, 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, é possível 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 Teste de Carga do Azure

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 é um recurso de nível superior para suas atividades de teste de carga. Esse recurso fornece um local centralizado para exibir e gerenciar testes de carga, resultados de teste 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 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 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 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 aos quais o JMeter oferece suporte, não apenas 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.

O Teste de Carga do Azure atualmente 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 do JMeter para o teste.

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

Toda vez que iniciar um teste, o Teste de Carga do Azure cria uma execução de teste e a anexa ao teste.

Execução de 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.

Depois que a execução de teste for concluída, você poderá exibir e analisar os resultados do teste de carga no painel do Teste de Carga do Azure no portal do Azure.

Como alternativa, você pode baixar os logs de teste e exportar o arquivo de resultados de 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.

Mecanismo de teste

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

Os mecanismos de teste são hospedados no mesmo local que o 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 de mecanismo de teste. Você pode baixar os logs para analisar erros durante o teste de carga.

Componente do aplicativo

Ao executar um teste de carga para um aplicativo hospedado no Azure, você pode monitorar as métricas de recursos para os diferentes componentes de 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 recurso 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 compatíveis com o Teste de Carga do Azure.

Métrica

Durante um teste de carga, o Teste de Carga do Azure coleta métricas sobre a execução do teste. Há 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. É possível definir critérios de falha de teste com base nessas métricas do cliente.

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