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.
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 uma das três maneiras:
- Carregue um script de teste JMeter.
- Carregue um script de teste de gafanhoto.
- Especifique a lista de pontos de extremidade de URL a serem testados.
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 e do Locust.
O teste também especifica as definições de configuração para executar o teste de carga:
- Parâmetros de teste de carga, como variáveis de ambiente, segredos e certificados.
- Configuração de carga para dimensionar seu teste de carga em várias instâncias do mecanismo de teste.
- Critérios de reprovação para determinar quando o teste deve ser aprovado ou reprovado.
- Configurações de monitoramento para configurar a lista de componentes do aplicativo do Azure e métricas de recursos a serem monitoradas durante a execução de teste.
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. Em seguida, as instâncias do mecanismo de teste iniciam o script de teste 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. As instâncias do mecanismo de teste executam o script de teste 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 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 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.
Conteúdos relacionados
Agora você conhece os principais conceitos do Teste de Carga do Azure para começar a criar um teste de carga.
- Saiba como funciona o Teste de Carga do Azure.
- Saiba como criar e executar um teste de carga baseado em URL para um site.
- Saiba como Identificar um afunilamento de desempenho em um aplicativo do Azure.
- Saiba como configurar testes de regressão automatizados com CI/CD.