Compartilhar via


Conceitos-chave 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 ajudar você a configurar com mais eficiência um teste de carga para identificar problemas de desempenho em seu aplicativo.

Conceitos gerais de testes 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.

Locust se refere aos usuários virtuais como usuários. Você pode especificar os usuários necessários para o seu teste na interface web, como um argumento de linha de comando, por meio de uma variável de ambiente ou por meio de um arquivo de configuração. Para mais informações, veja opções de configuração na documentação do Locust.

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.

Para testes de carga baseados em JMeter, 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 alvo 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.

Para testes de carga baseados no Locust, o número total de usuários virtuais é o número de usuários especificado por meio de qualquer uma das opções de configuração. Você pode então configurar o número de instâncias do mecanismo de teste necessárias para gerar o número total de usuários.

Tempo de atividade

O tempo de atividade é o tempo necessário para atingir o 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 atividade for 120 segundos, serão necessários 120 segundos para atingir todos os 20 usuários virtuais. Cada usuário virtual iniciará 6 (120/20) segundos após o usuário anterior ter sido iniciado.

Para Locust, você pode configurar o aumento de velocidade usando taxa de spawn. A taxa de geração é o número de usuários adicionados por segundo. Por exemplo, se o número de usuários for 20 e a taxa de geração for 2, 2 usuários serão adicionados a cada segundo e levará 10 segundos para atingir todos os 20 usuários.

Tempo de resposta

O tempo de resposta de uma solicitação individual, ou tempo decorrido no JMeter, é o tempo total desde o momento anterior ao envio da solicitação até o momento posterior ao recebimento da última resposta. O tempo de resposta não inclui o tempo para renderizar a resposta. Nenhum código de cliente, como JavaScript, é processado durante o teste de carga.

Latência

A latência de uma solicitação individual é o tempo total desde o momento em que a solicitação é enviada até o momento em que a primeira resposta é recebida. 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 ao aplicativo do servidor que seu 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.

Diagrama que mostra como os diferentes conceitos do Teste de Carga do Azure se relacionam entre si.

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. Esse recurso fornece um local centralizado para visualizar e gerenciar testes de carga, resultados de testes e artefatos relacionados.

Ao criar um recurso de teste de carga, você especifica sua localização, que determina a localização dos mecanismos de teste. O Teste de Carga do Azure criptografa automaticamente todos os artefatos no 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 seu recurso de teste de carga e artefatos relacionados.

O Teste de Carga do Azure permite que você use identidades gerenciadas para vários propósitos, como acessar o Azure Key Vault para armazenar parâmetros secretos ou certificados de teste de carga, acessar métricas do Azure Monitor para configurar critérios de falha ou simular fluxos de autenticação baseados em identidade gerenciada.

Teste

Um teste descreve a configuração do teste de carga para seu aplicativo. Adicione 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 uma das três maneiras a seguir:

O Teste de Carga do Azure oferece suporte a todos os protocolos de comunicação suportados pelo JMeter e pelo Locust, não apenas aos pontos de extremidade baseados em HTTP. Por exemplo, você pode querer 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 e do Locust.

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

Além disso, você pode carregar arquivos de dados de entrada CSV e arquivos de configuração de teste 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. As instâncias do mecanismo de teste então iniciam o script de teste para simular a carga do aplicativo.

Cada vez que você inicia 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 do teste contém uma cópia das definições de configuração do teste associado.

Após a conclusão do teste, você poderá visualizar e analisar os resultados do teste de carga no painel de 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

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ão usadas apenas por novas execuções de teste quando você executa o teste. Se você executar novamente um teste existente, as configurações originais do teste serão usadas.

Mecanismo de teste

Um mecanismo de teste é uma infraestrutura de computação, gerenciada pela Microsoft, que executa o script de teste. As instâncias do mecanismo de teste executam o script de teste em paralelo. Você pode dimensionar seu teste de carga configurando o número de instâncias do mecanismo de teste. Aprenda a configurar o número de usuários virtuais ou simular uma meta de requisições 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 da estrutura de teste 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 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 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é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:

  • 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 os componentes do seu aplicativo Azure. O Teste de Carga do Azure integra-se ao Azure Monitor, incluindo Application Insights e Contêiner Insights, 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 para o número de leituras do banco de dados, o tipo de respostas HTTP ou o consumo de recursos do contêiner. Você também pode definir critérios de falha de teste com base nessas métricas do lado do servidor.

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