Share via


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. Essa informação poderá ajudar você a configurar um teste de carga com mais eficiência para identificar problemas de desempenho no 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, serão necessários 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 o tempo decorrido no JMeter é o tempo total decorrido entre o momento pouco antes de enviar a solicitação e o momento 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 decorrido entre o momento pouco antes de enviar a solicitação e o momento 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, considerando 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.

Diagrama mostrando como os diferentes conceitos no Teste de Carga do Azure se relacionam entre si.

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 Azure Key Vault para armazenar certificados ou parâmetros de segredo de teste de carga. Você pode usar uma identidade gerenciada atribuída pelo usuário ou sistema.

Teste

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

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 uma das três maneiras a seguir:

O Teste de Carga do Azure é compatível com todos os protocolos de comunicação com os quais o JMeter é compatível, não apenas com pontos de extremidade baseados em HTTP. Por exemplo, talvez você queira ler ou gravar em um banco de dados ou fila de espera de mensagens no script de teste.

Atualmente, o Teste de Carga do Azure não é compatível com outras estruturas de teste além do Apache JMeter e do Locust.

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

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

Quando você inicia um teste, o Teste de Carga do Azure implanta o script de teste, os arquivos relacionados e a configuração nas instâncias do mecanismo de teste. A seguir, as instâncias do mecanismo de teste iniciam o script de teste 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. Ao executar um teste, a execução de teste conterá uma cópia das definições de configuração do teste associado.

Após a execução do teste ser concluída, você poderá ver e analisar os resultados do teste de carga no painel de controle do Teste de Carga do Azure no portal do Azure.

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

Importante

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

Mecanismo de teste

Um mecanismo de teste é uma infraestrutura de computação gerenciada pela Microsoft que executa o script do teste. As instâncias do mecanismo de teste executam o script do teste 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 está sendo executado, o Teste de Carga do Azure coleta e agrega os logs da estrutura de testes de todas as instâncias do 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.

Leia mais sobre os tipos de recursos do Azure compatíveis com o 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. 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.