O que é o Teste de Carga do Azure?
O Teste de Carga do Azure é um serviço de teste de carga totalmente gerenciado que permite gerar carga de alta escala. O serviço simula o tráfego das suas aplicações, independentemente de onde estiverem alojadas. Os programadores, técnicos de teste e engenheiros de garantia de qualidade (GQ) podem utilizá-lo para otimizar o desempenho, a escalabilidade ou a capacidade das aplicações.
Crie rapidamente um teste de carga para seu aplicativo Web usando uma URL e sem conhecimento prévio de 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 de teste de carga mais avançados, 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 no Apache JMeter ou testes baseados em gafanhotos. Por exemplo, seu plano de teste pode consistir em várias solicitações de aplicativo, você deseja chamar pontos de extremidade não-HTTP ou está usando dados e parâmetros de entrada para tornar o teste mais dinâmico.
Se seu aplicativo estiver hospedado no Azure, o Teste de Carga do Azure coletará métricas de recursos detalhadas para ajudá-lo a identificar gargalos de desempenho em seus componentes de aplicativo do Azure.
Para capturar regressões de desempenho de aplicativos antecipadamente, adicione seu teste de carga em 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 aplicativos 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 diagrama a seguir mostra uma visão geral da arquitetura do Teste de Carga do Azure.
Nota
A imagem de visão geral mostra como o Teste de Carga do Azure usa o Azure Monitor para capturar métricas para componentes do aplicativo. Saiba mais sobre os tipos de recursos do Azure suportados.
Saiba mais sobre os principais conceitos para o Teste de Carga do Azure.
Cenários de utilização
O Teste de Carga do Azure pode usar as estruturas de teste Apache JMeter ou Locust e dá 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 finais suportados:
- Aplicações Web, utilizando HTTP ou HTTPS
- APIs REST
- Bancos de dados via JDBC
- Pontos de extremidade baseados em TCP
Para JMeter, você pode usar plug-ins JMeter em seu script de teste, você pode carregar mais tipos de aplicativos.
Com a experiência de teste rápido, você pode testar um único ponto de extremidade HTTP baseado em URL. Ao carregar um script JMeter, você pode usar todos os protocolos de comunicação suportados pelo JMeter.
Atualmente, o Teste de Carga do Azure não oferece suporte a outras estruturas de teste além do Apache JMeter e do Locust.
Identificar gargalos de desempenho usando testes de carga de alta escala
Os problemas de desempenho geralmente não são detetados até que um aplicativo esteja sob carga. Você pode iniciar um teste de carga de alta escala no portal do Azure para saber mais cedo como seu aplicativo se comporta sob estresse. Enquanto o teste está em execução, o painel de Teste de Carga do Azure fornece uma atualização em tempo real das métricas do cliente e do servidor.
Após a conclusão do teste de carga, você pode usar 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 de aplicativo do Azure. Comece 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 comparar visualmente várias execuções para detetar 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.
Habilite o teste de carga automatizado
Você pode integrar o Teste de Carga do Azure em 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 uma compilação Release Candidate.
Comece a adicionar 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 o desempenho do aplicativo ou regressões de estabilidade 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 interromperá automaticamente um teste de carga automatizado em resposta a condições de erro específicas. Como alternativa, você também pode usar o ouvinte AutoStop no script Apache JMeter. A interrupção automática protege você contra falhas em testes que incorram em custos adicionais, por exemplo, devido a uma URL de ponto de extremidade configurada incorretamente. Saiba como você pode configurar a parada automática para seu teste de carga.
Você pode acionar o Teste de Carga do Azure a partir de fluxos de trabalho do Azure Pipelines ou GitHub Actions ou usar a CLI do Azure para integrar com outras ferramentas de CI.
Como funciona o Teste de Carga do Azure?
O Teste de Carga do Azure usa Apache JMeter ou Locust para executar testes de carga. Você pode usar plugins do Apache JMeter ou carregar seu próprio código de https://jmeter-plugins.org plugin. O Teste de Carga do Azure dá suporte a todos os protocolos de comunicação suportados pelo JMeter. Por exemplo, use o Teste de Carga do Azure para carregar uma conexão de banco de dados ou fila de mensagens. Saiba mais sobre a funcionalidade Apache JMeter suportada.
Os mecanismos de teste de 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 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 dimensionar o teste de carga, você pode configurar o número de mecanismos de teste.
Você pode hospedar o aplicativo em 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 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 recursos e as exibe em um painel:
As 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.
As métricas do lado do servidor 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.
O Teste de Carga do Azure incorpora automaticamente as práticas recomendadas para a rede do Azure para ajudar a garantir que seus testes sejam executados de forma segura e confiável. Os testes de carga são interrompidos automaticamente se os pontos de extremidade do aplicativo ou os componentes do Azure começarem a limitar as solicitações.
O serviço criptografa automaticamente todos os dados armazenados em seu recurso de teste de carga com chaves gerenciadas pela Microsoft (chaves gerenciadas pelo serviço). Por exemplo, esses dados incluem seu script de teste Apache JMeter ou Locust, arquivos de configuração e muito mais. Como alternativa, 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.
Conteúdos relacionados
Comece a usar o Teste de Carga do Azure:
- Guia de início rápido: crie um teste de carga baseado em URL.
- Guia de início rápido: crie um teste de carga usando um script JMeter.
- Guia de início rápido: crie um teste de carga usando um script Locust.
- Saiba mais sobre os principais conceitos para o Teste de Carga do Azure.