14. Gerando o Painel de Relatório ¶
O JMeter suporta a geração de relatórios do painel para obter gráficos e estatísticas de um plano de teste.
Este capítulo descreve como configurar e usar o gerador.
14.1 Visão geral ¶
O gerador de painel é uma extensão modular do JMeter. Seu comportamento padrão é ler e processar amostras de arquivos CSV para gerar arquivos HTML contendo visualizações de gráficos. Pode gerar o relatório ao final de um teste de carga ou sob demanda.
Este relatório fornece as seguintes métricas:
- Tabela APDEX (Application Performance Index) que calcula para cada transação o APDEX com base em valores configuráveis para limites tolerados e satisfeitos
- Um gráfico de resumo de solicitação mostrando a porcentagem de solicitações bem-sucedidas e com falha (os resultados da amostra do Transaction Controller não são levados em consideração):
- Uma tabela de estatísticas fornecendo em uma tabela um resumo de todas as métricas por transação, incluindo 3 percentis configuráveis:
- Uma tabela de erros que fornece um resumo de todos os erros e sua proporção no total de solicitações:
- Uma tabela dos 5 principais erros por amostrador fornecendo para cada amostrador (excluindo o controlador de transação por padrão) os 5 principais erros:
- Gráfico com zoom onde você pode marcar/desmarcar cada transação para mostrá-la/ocultá-la para:
- Tempos de resposta ao longo do tempo (inclui resultados de amostra do controlador de transação):
- Tempos de resposta Percentis ao longo do tempo (somente respostas bem-sucedidas):
- Tópicos ativos ao longo do tempo:
- Taxa de transferência de bytes ao longo do tempo (ignora resultados de amostra do controlador de transação):
- Latências ao longo do tempo (inclui resultados de amostra do controlador de transação):
- Conectar ao longo do tempo (inclui resultados de amostra do controlador de transação):
- Hits por segundo (ignora resultados de amostra do Transaction Controller):
- Códigos de resposta por segundo (ignora resultados de amostra do Transaction Controller):
- Transações por segundo (inclui resultados de amostra do controlador de transações):
- Tempo de resposta vs solicitação por segundo (ignora resultados da amostra do controlador de transação):
- Latência x solicitação por segundo (ignora resultados de amostra do controlador de transação):
- Visão geral do tempo de resposta (exclui resultados de amostra do controlador de transação):
- Percentis de tempos de resposta (inclui resultados de amostra do controlador de transação):
- Times vs Threads (inclui resultados de amostra do controlador de transação):
No modo distribuído, este gráfico mostra em um eixo horizontal o número de threads para 1 servidor. É uma limitação atual
- Distribuição do tempo de resposta (inclui resultados de amostra do controlador de transação):
14.2 Configurando a Geração do Painel ¶
A geração do painel usa as propriedades do JMeter para customizar o relatório. Algumas propriedades são usadas para configurações gerais e outras são usadas para uma configuração de gráfico específica ou configuração de exportador.
14.2.1 Requisitos ¶
14.2.1.1 Configuração de filtragem ¶
Certifique-se de definir a propriedade jmeter.reportgenerator.exporter.html.series_filter para manter apenas as transações desejadas no relatório, caso não deseje tudo.No exemplo abaixo você deve apenas modificar Search|Order , mantenha o resto:
jmeter.reportgenerator.exporter.html.series_filter=^(Search|Order)(-success|-failure)?$
14.2.1.2 Salvar configuração do serviço ¶
Para permitir que o gerador funcione, o arquivo CSV gerado pelo JMeter deve incluir certos dados necessários que estão corretos por padrão na última versão ativa do JMeter.
Se você modificou essas configurações, verifique se a configuração do JMeter segue essas configurações (esses são os padrões):
jmeter.save.saveservice.bytes = true # Disponível apenas com HttpClient4 #jmeter.save.saveservice.sent_bytes=true jmeter.save.saveservice.label = true jmeter.save.saveservice.latency = true jmeter.save.saveservice.response_code = true jmeter.save.saveservice.response_message = true jmeter.save.saveservice.successful = true jmeter.save.saveservice.thread_counts = true jmeter.save.saveservice.thread_name = true jmeter.save.saveservice.time = true jmeter.save.saveservice.connect_time = true jmeter.save.saveservice.assertion_results_failure_message = true # o formato de carimbo de data/hora deve incluir a hora e a data. # Por exemplo, o padrão, que é milissegundos desde a época: jmeter.save.saveservice.timestamp_format = ms # Ou o seguinte também seria adequado # jmeter.save.saveservice.timestamp_format = aaaa/MM/dd HH:mm:ss
14.2.1.3 Configuração do Controlador de Transação ¶
Se você usa o Transaction Controller s, para garantir resultados mais precisos:
- desmarque a caixa ( esta é a configuração padrão ): Gerar amostra pai
- Se o Transaction Controller for usado como um Container para representar uma solicitação para uma página HTML que acionará chamadas Ajax e você quiser apenas em seu relatório o Transaction Controller, clique com o botão direito do mouse no nó e Apply Naming Policy Você obterá isso:
14.2.2 Configurações gerais ¶
jmeter.reportgenerator.
Parâmetros
Padrão: "Painel do Apache JMeter"
O formato de data padrão é yyyyMMddHHmmss
Útil quando você deseja gerar um relatório após o teste de carga e o arquivo de resultados contém carimbo de data/hora em outro fuso horário. Nesse caso, o formato de data deve incluir o fuso horário (zzz).
Exemplo: dd/MM/aaaa HH:mm:ss zzz
O formato de data é definido pela propriedade date_format.
Padrão: não preenchido, o que significa que o intervalo de dados será usado desde o início
O formato de data é definido pela propriedade date_format.
Padrão: não preenchido, o que significa que o intervalo de dados será usado até o final
Padrão: 1500
Use nomes de amostra ou expressão regular.
O formato é sample_name:satisfaction|tolerance[;]
Os valores estão em milissegundos.
jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\ amostras12:3000|4000;\ cenário01-12:5000|6000
Formato: Expressão regular.
Predefinição: ""
Padrão: temporário
Padrão: 20.000
- agregado_rpt_pct1: O padrão é 90
- agregado_rpt_pct2: O padrão é 95
- agregado_rpt_pct3 : O padrão é 99
Você pode definir algumas propriedades gerais que são usadas pela configuração do gerador. Estas propriedades são nomeadas livremente mas você deve usar o prefixo
jmeter.reportgenerator.para evitar sobreposição de propriedades.
Por exemplo:
- Definição da propriedade:
-
jmeter.reportgenerator.overall_granularity=60000
- Referência da propriedade:
-
${jmeter.reportgenerator.overall_granularity}
14.2.3 Configurações do gráfico ¶
Cada propriedade que descreve uma configuração de gráfico deve ser prefixada com
jmeter.reportgenerator.graph.seguido pelo identificador do gráfico.
14.2.3.1 Propriedades gerais ¶
Todos os gráficos suportam estas propriedades:
Parâmetros
A classe do gráfico deve estender org.apache.jmeter.report.processor.graph.AbstractGraphConsumer .
Consulte a seção Gráfico padrão para obter mais detalhes.
14.2.3.2 Propriedades específicas ¶
Propriedades de gráfico específicas devem usar o prefixo:
jmeter.reportgenerator.graph.<graph_id>.propertyO nome da propriedade será mapeado usando a transformação camel case e o método de correspondência da classe será chamado com o valor da propriedade como argumento.
Por exemplo:
jmeter.reportgenerator.graph.<graph_id>.property.set_granularity=150induz a chamada do método setGranularity(150) na instância do gráfico.
14.2.4 Configurações de exportação ¶
Cada propriedade que descreve uma configuração de exportador deve ser prefixada com
jmeter.reportgenerator.exporterseguido pelo identificador do exportador.
14.2.4.1 Propriedades gerais ¶
Todos os exportadores são compatíveis com estas propriedades:
Parâmetros
A classe do exportador deve implementar org.apache.jmeter.report.dashboard.DataExporter .
Formato: expressão regular. Predefinição: ""
14.2.4.2 Propriedades específicas ¶
Propriedades específicas do exportador devem usar o prefixo
jmeter.reportgenerator.exporter.<exporter_id>.property
Parâmetros
14.2.4.3 Propriedades do gráfico ¶
As propriedades do gráfico permitem que os exportadores sobrescrevam alguns dados do gráfico.
Eles devem usar o prefixo:
jmeter.reportgenerator.exporter.<exporter_id>.graph_options.<graph_id>
Parâmetros
14.2.4.4 Mecanismos de filtragem ¶
Diferentemente da filtragem na seção Propriedades gerais que descarta os dados antes dos cálculos, aqui a filtragem é realizada após os cálculos e serve para simplificar o relatório final.
A propriedade series_filter permite filtrar qual série de um gráfico (resp. linhas de uma tabela de resumo) usando a expressão regular que corresponde ao nome da série (resp. da linha). No entanto, mesmo que o nome da série (linha resp.) corresponda ao filtro, a configuração das outras propriedades de filtragem pode levar ao seu descarte. Por outro lado, se não houver correspondência, as outras propriedades podem permitir mantê-la.
As tabelas a seguir mostram como funciona a configuração das propriedades de filtragem.
filter_only_sample_series | Gráfico/Resumo suporta discriminação de controladores | A série atual é uma série de controladores | show_controllers_only | Descartado |
---|---|---|---|---|
Falso | Falso | - | Falso | Falso |
Verdadeiro | ||||
- | Falso | |||
Verdadeiro | ||||
Verdadeiro | Falso | Falso | ||
Verdadeiro | ||||
Verdadeiro | Falso | |||
Verdadeiro | ||||
Verdadeiro | Falso | - | Falso | |
Verdadeiro | ||||
- | Falso | |||
Verdadeiro | ||||
Verdadeiro | Falso | Falso | ||
Verdadeiro | Verdadeiro | |||
Verdadeiro | Falso | Falso | ||
Verdadeiro |
filter_only_sample_series | Gráfico/Resumo suporta discriminação de controladores | Mantido |
---|---|---|
Falso | Falso | Falso |
Verdadeiro | ||
Verdadeiro | Falso | Verdadeiro |
Verdadeiro | Falso |
- Se você definir a propriedade show_controllers_only e o gráfico estiver configurado para excluir controladores.
- Se a propriedade series_filter não corresponder a nenhuma série.
14.2.5 Configuração de amostra ¶
Você pode copiar a configuração a seguir para o arquivo user.properties para testar o gerador de relatórios.
# Configure esta propriedade para alterar o título do relatório #jmeter.reportgenerator.report_title=Painel do Apache JMeter # Altere este parâmetro se desejar alterar a granularidade dos gráficos ao longo do tempo. # A granularidade deve ser maior que 1000 (1 segundo), caso contrário, os gráficos de taxa de transferência estarão incorretos # veja o Bug 60149 #jmeter.reportgenerator.overall_granularity=60000 Altere este parâmetro se desejar alterar a granularidade da distribuição do tempo de resposta # Configurado para 100 ms por padrão #jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=100 # Altere este parâmetro se desejar substituir o limite de satisfação do APDEX. jmeter.reportgenerator.apdex_satisfied_threshold=1500 # Altere este parâmetro se desejar substituir o limite de tolerância APDEX. jmeter.reportgenerator.apdex_tolerated_threshold=3000 # Define o diretório de destino para as páginas html geradas, é melhor alterá-lo a cada geração # Isso substituirá o valor definido através da opção de linha de comando -o # jmeter.reportgenerator.exporter.html.property.output_dir=/tmp/test-report # Indica quais séries de gráficos são filtradas (expressão regular) # No exemplo abaixo, filtramos as amostras de pesquisa e pedido # Observe que o final do padrão deve sempre incluir (-success|-failure)?$ # Transações por segundo sufixos Transações com "-success" ou "-failure" dependendo # no resultado #jmeter.reportgenerator.exporter.html.series_filter=^(Search|Order)(-success|-failure)?$ # Indica se o filtro de série se aplica apenas em séries de amostra jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
Esta configuração permite gerar um relatório onde:
- Os gráficos ao longo do tempo têm uma granularidade de tempo igual a 1 minuto.
- O limite de satisfação para o cálculo do ADPEX é de 1 segundo e meio.
- O limite de tolerância para cálculo de ADPEX é de 3 segundos.
- Os arquivos HTML são gerados no diretório /tmp/test-report .
- Apenas as séries cujo nome começa com " s0 " ou " s1 " são mostradas.
- O filtro anterior se aplica apenas a gráficos (tabelas de resumo de resp.) em que as séries (linhas de resp.) correspondem a amostras
14.3 Gerando relatórios ¶
A geração do relatório pode ser feita como um processo autônomo a partir de um arquivo de log de amostra ou automaticamente após a execução do teste de carga.
14.3.1 Geração de um arquivo de log CSV de amostra existente ¶
Use o seguinte comando:
jmeter -g <arquivo de log> -o <Caminho para a pasta de saída>
14.3.2 Geração após teste de carga ¶
Use o seguinte comando:
jmeter -n -t <arquivo JMX de teste> -l <arquivo de log de teste> -e -o <Caminho para a pasta de saída>
14.3.3 Geração usando o menu Ferramentas GUI ¶
Você pode gerar o relatório HTML usando o item de menu Ferramentas → Gerar relatório HTML :
Para cada parâmetro veja a tabela a seguir:
Parâmetros
Se nenhum diretório de saída for definido, o controlador usará ${JMETER_HOME}/bin/report-output .
Você só precisa clicar no botão Gerar relatório e esperar que uma caixa de diálogo de informações apareça
14.4 Gráficos padrão ¶
Todos os gráficos fornecidos por este mecanismo de relatório estão localizados no pacote org.apache.jmeter.report.processor.graph.impl
O gerador de painel fornece as seguintes classes de gráfico:
Gráfico | Descrição | Suporta discriminação do controlador |
---|---|---|
ActiveThreadsGraphConsumer | Este gráfico representa o número de threads ativos ao longo do tempo. | Falso |
BytesThroughputGraphConsumer | Este gráfico representa a taxa de transferência de dados recebidos e enviados ao longo do tempo. | Falso |
CódigosPor SegundoGráficoConsumidor | Este gráfico representa a taxa de códigos de resposta ao longo do tempo. | Falso |
HitsPerSecondGraphConsumer | Este gráfico representa a taxa de solicitações concluídas ao longo do tempo. | Falso |
LatencyOverTimeGraphConsumer | Este gráfico representa o tempo médio de latência ao longo do tempo. | Verdadeiro |
ConnectTimeOverTimeGraphConsumer | Este gráfico representa o tempo de conexão ao longo do tempo. | Verdadeiro |
LatencyVSRequestGraphConsumer | Este gráfico representa a mediana e o tempo médio de latência, dependendo do número de solicitações atuais. | Falso |
ResponseTimeDistributionGraphConsumer | Este gráfico representa a distribuição das amostras dependendo do tempo decorrido e do nome. | Verdadeiro |
ResponseTimeOverTimeGraphConsumer | Este gráfico representa o tempo médio de resposta ao longo do tempo. | Verdadeiro |
ResponseTimePercentilesGraphConsumer | Este gráfico representa os percentis do tempo decorrido ao longo do tempo. | Verdadeiro |
ResponseTimePercentilesOverTimeGraphConsumer | Este gráfico mostra o tempo de resposta Mín/Máx e 3 percentis ao longo do tempo. | Verdadeiro |
ResponseTimeVSRequestGraphConsumer | Este gráfico representa a mediana e o tempo médio de resposta dependendo do número de solicitações atuais. | Falso |
TimeVSThreadGraphConsumidor |
Este gráfico representa o tempo médio de resposta dependendo do número de threads ativos atuais.
A série agregada * representa o tempo médio de resposta, independentemente do número de encadeamentos ativos atuais. Essas séries são representadas por um único ponto porque o número de threads ativos atuais é agregado a uma média. Então para esses pontos:
|
Verdadeiro |
TransactionsPer SecondGraphConsumer | Este gráfico representa a taxa de transação por nome de amostra ao longo do tempo. | Verdadeiro |
14.5 Geração de gráficos alfandegários ao longo do tempo ¶
Você pode representar graficamente qualquer sample_variable em CSV ao longo do tempo, você pode personalizar seus gráficos configurando suas propriedades no arquivo user.properties.
Eles devem usar o prefixo de id custom_ :
jmeter.reportgenerator.graph.custom_<your_graph_name_id>.property.<your_option_name>Para especificar que este gráfico é personalizado:
jmeter.reportgenerator.graph.custom_<your_graph_name_id>.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer
Parâmetros
Aqui está um exemplo de uma configuração de gráfico personalizada que representa graficamente a variável ts-hit :
jmeter.reportgenerator.graph.custom_testGraph.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer jmeter.reportgenerator.graph.custom_testGraph.title=Chunk Hit jmeter.reportgenerator.graph.custom_testGraph.property.set_Y_Axis=Número de Ocorrências jmeter.reportgenerator.graph.custom_testGraph.set_X_Axis=Ao longo do tempo jmeter.reportgenerator.graph.custom_testGraph.property.set_granularity=60000 jmeter.reportgenerator.graph.custom_testGraph.property.set_Sample_Variable_Name=ts-hit jmeter.reportgenerator.graph.custom_testGraph.property.set_Content_Message=Número de Ocorrências:
14.6 Quer melhorar o Painel de Relatórios? ¶
Se você quiser contribuir com novos gráficos ou melhorar os atuais, leia esta documentação do desenvolvedor .Leia esta documentação sobre como contribuir.