当前位置: 首页 > 知识库问答 >
问题:

JMeter 3.0报告生成-为什么我的报告仪表板是空白的?

郑宏朗
2023-03-14

我是JMeter的新手,我正在尝试让JMeter为现有的测试脚本生成html报告仪表板。我在处理过程中没有收到任何异常,并且日志指示生成报告时没有问题:

2016/07/08 12:42:24 DEBUG - jmeter.report.dashboard.ReportGenerator: Start report generation
2016/07/08 12:42:25 INFO  - jmeter.report.processor.NormalizerSampleConsumer: Using format:ms to parse timeStamp field
2016/07/08 12:42:25 DEBUG - jmeter.report.dashboard.ReportGenerator: Start samples processing
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.AggregateConsumer#stopProducing(): beginDate produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.AggregateConsumer#stopProducing(): endDate produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.ApdexSummaryConsumer#stopProducing(): apdexSummary produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.RequestsSummaryConsumer#stopProducing(): requestsSummary produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.StatisticsSummaryConsumer#stopProducing(): statisticsSummary produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.ErrorsSummaryConsumer#stopProducing(): errorsSummary produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.LatencyVSRequestGraphConsumer#stopProducing(): latencyVsRequest produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.HitsPerSecondGraphConsumer#stopProducing(): hitsPerSecond produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.CodesPerSecondGraphConsumer#stopProducing(): codesPerSecond produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.ResponseTimeVSRequestGraphConsumer#stopProducing(): responseTimeVsRequest produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.FilterConsumer#stopProducing(): startIntervalControlerFilter produced 4175 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.ResponseTimePercentilesGraphConsumer#stopProducing(): responseTimePercentiles produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.ResponseTimeOverTimeGraphConsumer#stopProducing(): responseTimesOverTime produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.BytesThroughputGraphConsumer#stopProducing(): bytesThroughputOverTime produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.ActiveThreadsGraphConsumer#stopProducing(): activeThreadsOverTime produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.TimeVSThreadGraphConsumer#stopProducing(): timeVsThreads produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.ResponseTimeDistributionGraphConsumer#stopProducing(): responseTimeDistribution produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.LatencyOverTimeGraphConsumer#stopProducing(): latenciesOverTime produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.TransactionsPerSecondGraphConsumer#stopProducing(): transactionsPerSecond produced 0 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.FilterConsumer#stopProducing(): nameFilter produced 10020 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.NormalizerSampleConsumer#stopProducing(): normalizer produced 2505 samples
2016/07/08 12:42:25 INFO  - org.apache.jmeter.report.processor.CsvFileSampleSource: produce(): 835 samples produced in 481ms on channel 0
2016/07/08 12:42:25 DEBUG - jmeter.report.dashboard.ReportGenerator: End of samples processing
2016/07/08 12:42:25 DEBUG - jmeter.report.dashboard.ReportGenerator: Start data exporting
2016/07/08 12:42:25 INFO  - jmeter.report.dashboard.ReportGenerator: Exporting data using exporter:'html' of className:'org.apache.jmeter.report.dashboard.HtmlTemplateExporter'
2016/07/08 12:42:25 DEBUG - jmeter.report.dashboard.HtmlTemplateExporter: Start template processing
2016/07/08 12:42:25 INFO  - jmeter.report.dashboard.HtmlTemplateExporter: Will generate dashboard in folder:/tmp/jmeter
2016/07/08 12:42:26 INFO  - jmeter.report.dashboard.HtmlTemplateExporter: Report will be generated in:/tmp/jmeter, creating folder structure
2016/07/08 12:42:26 DEBUG - jmeter.report.dashboard.HtmlTemplateExporter: End of template processing
2016/07/08 12:42:26 DEBUG - jmeter.report.dashboard.ReportGenerator: End of data exporting
2016/07/08 12:42:26 DEBUG - jmeter.report.dashboard.ReportGenerator: End of report generation

但是,当我查看生成的索引.html文件时,没有数据:

结果.csv文件不为空:

我的报告生成器和保存服务配置是:

#---------------------------------------------------------------------------
# Reporting configuration
#---------------------------------------------------------------------------
# If you want to debug reporting, uncomment this line
log_level.jmeter.report=DEBUG
jmeter.reportgenerator.report_title=AMP JMeter-test Dashboard
jmeter.reportgenerator.overall_granularity=6000
jmeter.reportgenerator.temp_dir = /tmp
#---------------------------------------------------------------------------
# Results file configuration
#---------------------------------------------------------------------------
jmeter.save.saveservice.output_format=csv
# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
jmeter.save.saveservice.assertion_results=all
#jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true

jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.default_delimiter=,
jmeter.save.saveservice.print_field_names=true

csvread.delimiter=,

我试图搜索类似的问题(在这里和其他地方),但我找不到任何解决这种情况的东西。结果正在以我期望的格式写入CSV文件并填充,但是在读取数据时似乎出了点问题。如果我至少可以填充错误和结果摘要部分,我会很高兴在这一点上。

我在日志(包含在片段中)中注意到,针对不同的事情报告了很多0样本...但是我认为我只关心CsvFileSampleSource,它正确地识别出它有大约800个样本...

另外,我运行我的测试如下:

jmeter -n -t /path/to/my/amp_automation.jmx -l /tmp/result.csv -e -o /tmp/jmeter

如果有任何见解,我都会很感激,我可能会遗漏一些东西。理想情况下,我不想再使用“旧的”方法为jmeter生成html报告(使用ant或其他侦听器等)

谢谢!

共有3个答案

颜欣怡
2023-03-14

在user.properties文件中,尝试添加:

    jmeter.reportgenerator.sample_filter=.*
    jmeter.reportgenerator.exporter.html.series_filter=.*

如前所述,检查您的过滤。

出于调试目的,我建议您将仪表板生成分离出来,以便使用命令行 -g 选项调试此问题,这样您就会得到一个不那么繁忙的 jmeter.log

看看jmeter.log它应该准确地显示正在读取哪些值以及如何设置。您要确保不会传递“无”值,特别是对于sample_filter!

尹昀
2023-03-14

我建议您仔细阅读jmeter开发人员之一编写的本教程,并参考JMeter文档:

  • https://jmeter.apache.org/usermanual/generating-dashboard.html

并检查:

>

  • 粒度

    http://jmeter . Apache . org/user manual/generating-dashboard . html # export _ filtering

    请注意,在Samples中使用引号时,JMeter 5.0之前存在一个bug:

    • https://bz.apache.org/bugzilla/show_bug.cgi?id=63016

    在 5.1 发布之前,您可以使用夜间构建或删除引号:

    • https://ci.apache.org/projects/jmeter/nightlies/

  • 微生信鸿
    2023-03-14

    我也有类似的问题。我意识到我在。jtl报告。我去掉了jtl的双引号,重新生成了仪表板。它非常有效!。

     类似资料:
    • 最新版本的JMeter有一个生成报告仪表板的选项,这很棒,但我正在努力自定义它以满足我的需求。 我正在对每个新版本的应用程序进行性能测试。 让我们从我的报告的当前状态开始。我有一个名为- Version的用户定义变量。我会在每次新的性能测试中改变这一点。此外,还有时间戳作为第二种比较。-可以比较同一版本的先前结果。基本上是昨天的结果和今天的结果比较。 我使用灵活的文件写入器将结果保存到csv文件。

    • 问题内容: 我在Fedora上运行jmeter2.12。 生成仪表盘报告的步骤是什么? 问题答案: 脚步: 1.从侦听器中添加“摘要报告”,“简单数据编写器”。 2.将位置设置为生成的csv 3.从“ D:\ apache-jmeter-3.0 \ bin \”打开reportgenerator.properties,从中复制所有内容 4.从同一bin文件夹中打开user.properties 5

    • 我在运行jmeter2。戴着软呢帽。 生成仪表板报表的步骤是什么?

    • 我正在AWS Codebuild/Codedeploy上运行测试,测试完成后,会生成一个Surefire HTML文件,但它是空的。当我在IntelliJ上本地运行测试时(不是通过MVN运行),各种JSON和XML测试报告都可以很好地创建。我完全无法理解为什么在IntelliJ上本地运行时会发生这种情况,而在AWS上通过MVN运行时会返回一个空报告。我完全被这件事困住了。 波姆。XML: 建筑规范

    • What the world really needs is more love and less paperwork. — Pearl Bailey 大型的基础设施架构往往是真正的第一受害者。如果你正管理着许多机器, 那么使用 Puppet 的报告设施,可以为你提供一些关于正在发生什么的有价值的信息。 操作步骤 要启用报告,只要将如下的行加入客户端的 puppet.conf 文件: report