O Apache JMeter é uma ferramenta de teste de estresse open source que oferece suporte a parametrização, asserções e extensões para diversos protocolos e controladores, permitindo criar scripts personalizados para implementar lógicas como processamento de parâmetros. O PTS executa seus scripts JMeter no mecanismo nativo do JMeter e adiciona dimensionamento horizontal e integração com o Cloud Monitor para testes de alta concorrência e diagnósticos de monitoramento. Este tópico descreve os casos de uso de testes de estresse nativos do JMeter no PTS, além de explicar como crie um cenário JMeter, iniciar um teste de estresse e trabalhar com o relatório de testes.
Casos de uso
Crie um cenário JMeter no PTS nas seguintes situações:
Alta concorrência — Necessidade de testes de estresse distribuídos com alta concorrência.
Observabilidade em tempo real — Monitoramento em tempo real (nível de segundos) durante o teste e geração automática de relatório após a conclusão.
Gerenciamento centralizado — Gerenciamento centralizado de scripts JMeter e dependências de ambiente.
Limites
Antes de crie um cenário JMeter, verifique os limites abaixo:
Arquivos de script JMX — O tamanho do arquivo não pode exceder 2 MB. É possível enviar vários arquivos de script JMX, mas apenas um pode ser usado por teste de estresse.
Arquivos JAR — O tamanho máximo permitido é 10 MB. Antes de enviar um arquivo JAR, depure-o em seu ambiente JMeter local para garantir que a depuração seja bem-sucedida.
Arquivos CSV — O limite de tamanho é 60 MB. Se o arquivo ultrapassar esse valor, use o recurso OSS data source para importá-lo.
Quantidade de arquivos — O total de arquivos não-JMX não pode exceder 20.
Etapa 1: Crie um cenário JMeter
Na página Create JMeter Scenario, insira um nome no campo Scenario.
-
Na seção Scenario Settings, envie o script de teste de estresse do JMeter. O nome do arquivo não deve conter espaços e a extensão deve ser
jmx.Após o envio do arquivo de teste JMX, o PTS completa automaticamente os plug-ins ausentes.
Se você enviar múltiplos arquivos JMX, selecione um deles como o script JMeter para iniciar o cenário de teste de estresse.
-
Clique em Upload File para enviar outros arquivos, como dados no formato CSV e plug-ins no formato JAR.
ImportanteUm arquivo enviado com o mesmo nome substitui o arquivo enviado anteriormente. Para comparar arquivos, obtenha o valor MD5 na coluna Actions do arquivo e compare-o com o valor MD5 do seu arquivo local para confirme se houve alterações.
Nota:
Ao preparar um arquivo CSV, não altere diretamente a extensão de um arquivo XLSX. Exporte o arquivo usando softwares como Excel ou Numbers. Caso o arquivo seja gerado por programa, use o Apache Commons CSV.
Se um arquivo de dados estiver associado ao script JMX, altere o Filename em CSV Data Set Config para apenas o nome do arquivo, sem incluir o caminho. Caso contrário, o arquivo de dados não poderá ser lido. Da mesma forma, ao usar a função
__CSVReadou especifique arquivos em um JAR, use somente o nome do arquivo.
(Opcional) Selecione Split File para um arquivo CSV e garanta que os dados não sejam duplicados em cada gerador de carga. Sem essa opção, os mesmos dados serão usados em todos os geradores de carga.
-
Defina se deseja usar um ambiente de dependências.
Ao selecionar Yes, escolha um ambiente criado previamente no gerenciamento de ambientes.
Ao selecionar No, especifique uma versão do JMeter. Há suporte para Apache JMeter 5.0 e Java 11.
Configure a carga do cenário.
(Opcional) Adicione monitoramento de recursos cloud. Esse recurso permite visualize rapidamente os dados correspondentes durante o teste e no relatório final. Ele vem desativado por padrão; para configurá-lo, ative a chave.
(Opcional) Inclua informações adicionais. Aqui você pode adicionar o responsável pelo teste e observações. Essa funcionalidade também está desativada por padrão; ative a chave para configurá-la.
-
(Opcional) Defina as configurações avançadas. Elas incluem taxa de amostragem de logs, configuração de DNS e componentes de adaptação distribuída. Por padrão, essas opções permanecem desativadas. Ative a chave para acessá-las.
As abas a seguir descrevem os valores padrão aplicados quando as configurações avançadas estão desativadas e os itens configuráveis quando elas estão ativadas.
Configurações avançadas desativadas
São utilizadas as definições padrão:
A Sampling Log Sampling Rate está definida como
1, e a cobrança é calculada pela fórmula(1+rate)*native VUM.A opção Clear DNS Cache in Each Loop permanece desligada, utilizando o resolvedor DNS do sistema.
Tanto o Synchronous Timer quanto o Constant Throughput Timer têm efeito em um único gerador.
Configurações avançadas ativadas
-
Configurações de taxa de amostragem de log
É possível personalizar a taxa de amostragem dos logs. A taxa padrão é de 1%. Para reduzi-la, insira um valor no intervalo
(0,1]. Para aumentá-la, insira um valor divisível por 10 no intervalo(1,50], como 20.Caso defina uma taxa superior a 1%, será aplicada uma cobrança adicional de
rate%. Por exemplo, se a taxa for de 20%, haverá um custo extra de20%*VUM. -
Configurações de cache DNS
Você pode optar por limpar ou não o cache DNS a cada requisição de acesso. Se a limpeza for necessária, use o resolvedor DNS do sistema ou um resolvedor personalizado. Um resolvedor customizado pode ser útil nos seguintes cenários:
-
Configurações de componentes de adaptação distribuída
Se o script enviado contiver componentes de adaptação distribuída, como temporizadores ou controladores, configure a adaptação para múltiplos endereços IP de geradores de carga. Isso ajuda a execute testes de desempenho mais precisos e eficazes. Selecione Takes effect globally se o valor configurado no script representar o limiar de todo o cluster de geradores. Escolha Single Generator se o valor corresponder ao limiar de cada gerador individualmente. Por padrão, ambos os temporizadores atuam sobre um único gerador.
-
Configure o Synchronous timer. Se o script JMeter enviado possuir um temporizador, defina se o valor configurado tem efeito global ou se aplica a um Single Generator.
Takes effect globally: O valor definido no script representa o limiar geral do cluster. Esse valor é dividido entre os geradores conforme o número de IPs utilizados. Ou seja, o limiar de um único gerador equivale ao valor do script dividido pela quantidade de IPs. Se houver dois IPs de geradores e o limiar agregado no script for 1.000, o limiar individual será 500.
Single Generator: O valor no script corresponde ao limiar de um único gerador, sem substituição de conteúdo. Nesse caso, verifique se a concorrência corresponde ao valor configurado. Com dois IPs de geradores e um limiar de 1.000 no script, cada gerador terá limiar de 1.000, resultando em um total de 2.000 para o cluster.
-
Configure o Constant Throughput Timer. Se o script JMeter contiver um controlador, escolha se o valor configurado tem efeito global ou se aplica a um Single Generator.
Takes effect globally: O valor no script define o limiar geral do cluster. Ele é distribuído entre os geradores como throughput alvo individual, baseado na quantidade de IPs. Assim, o limiar de cada gerador é o valor do script dividido pelo número de IPs. Por exemplo, com dois IPs, concorrência de 100, apenas um grupo de threads no script, throughput alvo de 100 por minuto e modo de cálculo baseado na thread atual, o throughput alvo total do cenário por minuto será 2 × (100 usuários concorrentes/2) × (100/2) = 5.000.
Single Generator: O valor no script indica o alvo de um único gerador, mantendo o conteúdo original. Verifique se o nível de concorrência está alinhado à configuração. Considerando dois IPs, concorrência de 100, um único grupo de threads, throughput alvo de 100 por minuto e cálculo pela thread atual, o throughput alvo total do cenário por minuto será 2 × (100 usuários concorrentes/2) × 100 = 10.000.
-
Etapa 2: Iniciar o teste de estresse
Clique em Debug para acesse a página de depuração do cenário e validar a configuração. A depuração verifica antecipadamente problemas como conectividade de rede, integridade de plug-ins e correção das configurações do script, evitando falhas na inicialização do teste. Para mais instruções, consulte Debug a scenario.
Clique em Save and Start. Na página Note, selecione Execute Now e marque The test is permitted and complies with the applicable laws and regulations.; em seguida, clique em Start Test.
Monitorar um teste de estresse em execução
Durante o teste de estresse, monitore os dados do cenário JMeter e realize operações como ajuste de velocidade do cenário.
Data
A tabela abaixo detalha os dados exibidos pelo PTS durante o teste.
|
Informação de dados |
Descrição |
|
Real-time VUM |
Total de recursos consumidos pelo teste, medido em VUM (minutos de usuário virtual). |
|
Request success rate (%) |
Taxa de sucesso das requisições de todos os cenários dentro do período estatístico de todos os geradores de carga. |
|
Average RT (success/failure) |
Success RT Avg (ms): RT médio de todas as requisições bem-sucedidas. Failure RT Avg (ms): RT médio de todas as requisições com falha. |
|
Transactions Per Second (TPS) |
Número total de requisições no período estatístico de todos os geradores dividido pelo tempo, em segundos (s). |
|
Anomalies |
Quantidade de requisições anômalas. Causas comuns incluem timeouts de conexão e timeouts de requisição. |
|
Traffic (Request/Response)/Seconds |
Tráfego das requisições enviadas e das respostas recebidas pelo gerador de carga. |
|
Concurrency (current/maximum) |
Valor de concorrência da carga. Se houver regulação de velocidade durante o teste, os valores atual e máximo configurado são exibidos separadamente. Durante a fase de aquecimento, a concorrência configurada ainda não é atingida. Após o aquecimento, ela atinge o valor definido. Para ajustar a concorrência durante o teste, clique em Speed Regulation e insira o número desejado. |
|
Total requests |
Soma de todas as requisições enviadas por todo o cenário durante o teste. |
Os dados de monitoramento baseiam-se em cálculos agregados simples do Backend Listener. O período de amostragem estatística do gerador de carga é de 15s, assim como o ciclo de agregação e cálculo dos dados. Portanto, pode ocorrer latência nos dados.
Configuration Information
A página de informações de configuração lista os dados básicos do cenário, incluindo origem da carga, duração configurada, modelo de tráfego e quantidade de endereços IP especificados.
Informações do teste de estresse
Na aba Testing Details, clique em View Chart à direita de um rastro específico para visualize seus dados em tempo real, como TPS, taxa de sucesso, tempo de resposta e tráfego.
Acesse a aba Load Generator Performance para ver métricas como utilização de cpu, Load5, uso de memória e curvas de série temporal de tráfego de rede de todos os geradores durante o teste. Também é possível filtrar o desempenho de um gerador específico.
Caso tenha adicionado monitoramento ECS, SLB, RDS ou ARMS, clique na aba Cloud Resource Monitoring para consultar as informações relacionadas.
Detalhes dos logs de amostragem
Selecione a aba Sampling Logs.
Filtre os logs por critérios como sampler do teste, status de resposta e faixa de RT.
Clique em Click to view details na coluna Actions do log correspondente.
Na caixa de diálogo Log Details, visualize os campos e valores na aba General. No canto superior direito, alterne o formato de exibição para General ou para o estilo de protocolo HTTP.
-
Se Embedded Resources from HTML Files estiver configurado no script JMeter, a aba Sub-request Details aparecerá nos detalhes do log. Ao selecionar uma sub-requisição específica, você filtra os logs correspondentes.
Os detalhes do log também oferecem as seguintes abas:
A aba Timing Waterfall mostra o consumo de tempo da requisição total e de cada sub-requisição.
A aba Trace View exibe os detalhes da cadeia de chamadas upstream e downstream do endpoint sob teste.
Etapa 3: Visualize o relatório de teste de estresse
Após a interrupção do teste, o PTS coleta automaticamente os dados gerados para compor um relatório. Esse documento apresenta a visão geral dinâmica do cenário de teste JMeter e os detalhes de cada requisição.
Na página Reports, selecione o tipo de cenário JMeter. Na coluna Actions do relatório desejado, clique em View Report.
Em gráficos de tendência, o período de amostragem estatística de cada ponto é de 15s. Pode haver latência de dados na fase inicial do relatório final.
(Opcional) Etapa 4: Exportar o relatório de teste de estresse
Os dados do relatório são retidos por 30 dias. Para preservar o relatório por mais tempo, exporte-o para sua máquina local.
Na página Report Details, clique em Export Report.
Escolha Version with Watermark ou Version without Watermark para baixe o relatório de teste de estresse em PDF para o seu computador.