O que é Teste de Carga do Azure?

Teste de Carga do Azure é um serviço de teste de carga totalmente gerenciado que permite gerar cargas de alta escala. O serviço simula o tráfego para seus aplicativos, independentemente de onde estão hospedados. Desenvolvedores, testadores e engenheiros de QA (garantia de qualidade) podem usá-lo para otimizar o desempenho, a escalabilidade ou a capacidade do aplicativo.

Crie rapidamente um teste de carga para seu aplicativo Web usando uma URL e sem conhecimento prévio das ferramentas de teste. O Teste de Carga do Azure abstrai a complexidade e a infraestrutura para executar seu teste de carga em escala.

Para cenários mais avançados de teste de carga, você também pode criar um teste de carga carregando um script de teste. O Teste de Carga do Azure dá suporte à execução de testes baseados em Apache JMeter ou testes baseados em Locust. Por exemplo, o plano de teste pode consistir em várias solicitações de aplicativo, você deseja chamar pontos de extremidade que não sejam HTTP ou está usando dados e parâmetros de entrada para que o teste fique mais dinâmico.

Se seu aplicativo estiver hospedado no Azure, o Teste de Carga do Azure coletará métricas de recursos detalhadas para ajudar você a identificar gargalos de desempenho nos componentes de aplicativos do Azure.

Para capturar as regressões antecipadas do desempenho do aplicativo, adicione seu teste de carga nos seu fluxo de trabalho de integração contínua e implantação contínua (CI/CD). Aproveite os critérios de falha do teste para definir e validar os requisitos de qualidade do seu aplicativo.

O Teste de Carga do Azure permite testar pontos de extremidade de aplicativo privados ou aplicativos que você hospeda localmente. Para obter mais informações, consulte os cenários para implantar o Teste de Carga do Azure em uma rede virtual.

O seguinte diagrama mostra uma visão geral da arquitetura do Teste de Carga do Azure.

Diagrama que mostra a arquitetura do Teste de Carga do Azure.

Observação

Esta imagem de visão geral mostra como o Teste de Carga do Azure usa o Azure Monitor para capturar métricas de componentes do aplicativo. Saiba mais sobre os tipos de recursos do Azure com suporte.

Saiba mais sobre os principais conceitos para o Teste de Carga do Azure.

Cenários de uso

O Teste de Carga do Azure pode usar o JMeter do Apache ou frameworks de teste Locust e oferece suporte a uma ampla variedade de tipos de aplicativos e protocolos de comunicação. A lista a seguir fornece exemplos de tipos de aplicativos ou pontos de extremidade suportados:

  • Aplicativos Web, usando HTTP ou HTTPS
  • APIs REST
  • Bancos de dados por meio da JDBC
  • Pontos de extremidade baseados em TCP

Para JMeter, você pode usar os plugins do JMeter no seu script de teste, você pode carregar mais tipos de aplicativos de teste.

Com a experiência de teste rápido, você pode testar um único ponto de extremidade HTTP baseado em URL. Ao carregar um script do JMeter, você pode usar todos os protocolos de comunicação suportados pelo JMeter.

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

Identificar gargalos de desempenho usando testes de carga de alta escala

Problemas de desempenho muitas vezes permanecem não detectados até que um aplicativo esteja sob carga. Você pode iniciar um teste de carga de alta escala no portal do Azure para saber antecipadamente como seu aplicativo se comporta sob estresse. Enquanto o teste está em execução, o painel do Teste de Carga do Azure fornece uma atualização dinâmica das métricas do cliente e do servidor.

Após a finalização do teste de carga, use o painel para analisar os resultados do teste e identificar gargalos de desempenho. Para aplicativos hospedados no Azure, o painel mostra métricas de recursos detalhadas dos componentes do aplicativo do Azure. Introdução com um tutorial para identificar gargalos de desempenho para aplicativos hospedados no Azure.

O Teste de Carga do Azure mantém um histórico de execuções de teste e permite que você compare visualmente várias execuções para detectar regressões de desempenho ao longo do tempo.

Você também pode baixar os resultados do teste para análise em uma ferramenta de terceiros.

Habilitar o teste de carga automatizado

Você pode integrar o Teste de Carga do Azure ao seu pipeline de CI/CD em pontos significativos durante o ciclo de vida de desenvolvimento. Por exemplo, você pode executar automaticamente um teste de carga no final de cada sprint ou em um ambiente de preparo para validar um build versão Release Candidate.

Comece adicionando testes de carga ao seu fluxo de trabalho de CI/CD para identificar rapidamente a degradação do desempenho do seu aplicativo sob carga.

Na configuração de teste, especifique critérios de falha de teste para capturar regressões de desempenho ou estabilidade do aplicativo no início do ciclo de desenvolvimento. Por exemplo, seja alertado quando o tempo médio de resposta ou o número de erros exceder um limite específico.

O Teste de Carga do Azure interrompe automaticamente um teste de carga automatizado em resposta a condições de erro específicas. Alternativamente, você também pode usar o ouvinte AutoStop em seu script do Apache JMeter. Parar automaticamente impede que testes com falha incorram em ainda mais custos, por exemplo, devido a uma URL de ponto de extremidade configurada incorretamente. Saiba como você pode configurar a parada automática para o teste de carga.

Você pode disparar o Teste de Carga do Azure em fluxos de trabalho do Azure Pipelines ou do GitHub Actions ou usar a CLI do Azure para integrar com outras ferramentas CI.

Como o Teste de Carga do Azure funciona?

O Teste de Carga do Azure usa o Apache JMeter ou Locust para executar testes de carga. Você pode usar plug-ins do Apache JMeter de https://jmeter-plugins.org ou carregar seu próprio código de plug-in. O Teste de Carga do Azure dá suporte a todos os protocolos de comunicação aos quais o JMeter dá suporte. Por exemplo, use o Teste de Carga do Azure para testar a carga de uma conexão de banco de dados ou uma fila de mensagens. Saiba mais sobre a funcionalidade do Apache JMeter suportada.

Os mecanismos de teste do Teste de Carga do Azure abstraem a infraestrutura necessária para executar um teste de carga de alta escala. Cada instância do mecanismo de teste executa seu script de teste para simular um grande número de usuários virtuais acessando simultaneamente os pontos de extremidade do seu aplicativo. Quando você cria um teste de carga com base em uma URL (teste rápido), o Teste de Carga do Azure gera automaticamente um script de teste para você. Para escalar horizontalmente o teste de carga, você pode configurar o número de mecanismos de teste.

Você pode hospedar o aplicativo sob carga em qualquer lugar: no Azure, no local ou em outras nuvens. Para executar um teste de carga para serviços que não têm um ponto de extremidade público, implante o Teste de Carga do Azure em uma rede virtual.

Durante o teste de carga, o Teste de Carga do Azure coleta as seguintes métricas de recurso e as exibe em um dashboard:

  • Métricas do lado do cliente fornecem detalhes relatados pelo mecanismo de teste. Esses detalhes incluem o número de usuários virtuais, o tempo de resposta da solicitação ou o número de solicitações por segundo.

  • Métricas do lado do servidor 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.

O Teste de Carga do Azure incorpora automaticamente as melhores práticas para a rede do Azure para ajudar a garantir que os testes sejam executados de modo seguro e confiável. Os testes de carga serão interrompidos automaticamente se os pontos de extremidade do aplicativo ou os componentes do Azure iniciarem solicitações de limitação.

O serviço criptografa automaticamente todos os dados armazenados no seu recurso de teste de carga com chaves gerenciadas pela Microsoft (chaves gerenciadas pelo serviço). Por exemplo, esses dados incluem o script do Apache JMeter ou Locust, arquivos de configuração e muito mais. Alternativamente, você também pode configurar o serviço para usar chaves gerenciadas pelo cliente.

Residência de dados na região

O Teste de Carga do Azure não armazena nem processa dados do cliente fora da região em que você implanta a instância de serviço.

Comece a usar o Teste de Carga do Azure: