JMeter 5.5生成HTML报告失败仅生成JSON文件求助
JMeter生成HTML报告失败仅生成JSON文件的解决办法
问题场景
使用Apache JMeter 5.5和JDK 1.8.0_352,通过非GUI模式执行命令:
jmeter -n -t ./MockTest.jmx -l report.jtl
已成功生成report.jtl文件,但执行命令:
jmeter -g ./report.jtl -o ./myStat01
生成HTML报告时未达预期,仅生成了JSON文件。查看jmeter_html_report.log发现核心错误为模板目录无效,完整日志翻译如下:
2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.graph.impl.ResponseTimePercentilesOverTimeGraphConsumer#stopProducing(): responseTimePercentilesOverTime生成了0个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.graph.impl.ResponseTimeOverTimeGraphConsumer#stopProducing(): responseTimesOverTime生成了0个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.graph.impl.ConnectTimeOverTimeGraphConsumer#stopProducing(): connectTimeOverTime生成了0个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.graph.impl.LatencyOverTimeGraphConsumer#stopProducing(): latenciesOverTime生成了0个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.FilterConsumer#stopProducing(): nameFilter生成了750个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.FilterConsumer#stopProducing(): dateRangeFilter生成了150个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.AbstractSampleConsumer: 类org.apache.jmeter.report.processor.NormalizerSampleConsumer#stopProducing(): normalizer生成了50个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.p.CsvFileSampleSource: produce(): 在通道0上用39ms生成了50个样本 2022-12-19 17:00:09,488 INFO o.a.j.r.d.ReportGenerator: 使用导出器:'json'(类名:'org.apache.jmeter.report.dashboard.JsonExporter')导出数据 2022-12-19 17:00:09,576 INFO o.a.j.r.d.JsonExporter: 在上下文中找到consumer statisticsSummary的数据 2022-12-19 17:00:09,576 INFO o.a.j.r.d.JsonExporter: 为整体创建统计数据 2022-12-19 17:00:09,577 INFO o.a.j.r.d.JsonExporter: 为其他事务创建统计数据 2022-12-19 17:00:09,577 INFO o.a.j.r.d.JsonExporter: 检查输出文件夹 2022-12-19 17:00:09,578 INFO o.a.j.r.d.JsonExporter: 将统计JSON写入/home/apache-jmeter-5.5/bin/myStat01/statistics.json 2022-12-19 17:00:09,601 INFO o.a.j.r.d.ReportGenerator: 使用导出器:'html'(类名:'org.apache.jmeter.report.dashboard.HtmlTemplateExporter')导出数据 2022-12-19 17:00:09,602 ERROR o.a.j.r.d.HtmlTemplateExporter: "/home/apache-jmeter-5.5/bin/report-template"不是有效的模板目录 2022-12-19 17:00:09,603 ERROR o.a.j.JMeter: 发生错误: org.apache.jmeter.report.dashboard.GenerationException: 数据导出器"html"无法导出数据。 at org.apache.jmeter.report.dashboard.ReportGenerator.exportData(ReportGenerator.java:388) ~[ApacheJMeter_core.jar:5.5] at org.apache.jmeter.report.dashboard.ReportGenerator.generate(ReportGenerator.java:260) ~[ApacheJMeter_core.jar:5.5] at org.apache.jmeter.JMeter.start(JMeter.java:462) ~[ApacheJMeter_core.jar:5.5] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_352] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_352] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_352] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_352] at org.apache.jmeter.NewDriver.main(NewDriver.java:259) ~[ApacheJMeter.jar:5.5] Caused by: org.apache.jmeter.report.dashboard.ExportException: "/home/apache-jmeter-5.5/bin/report-template"不是有效的模板目录 at org.apache.jmeter.report.dashboard.HtmlTemplateExporter.export(HtmlTemplateExporter.java:316) ~[ApacheJMeter_core.jar:5.5] at org.apache.jmeter.report.dashboard.ReportGenerator.exportData(ReportGenerator.java:382) ~[ApacheJMeter_core.jar:5.5] ... 7 more
问题原因
JMeter默认从安装根目录下的report-template文件夹读取HTML报告模板,但当前命令执行时,JMeter错误地在bin子目录下查找该模板文件夹,导致HTML导出失败,仅完成了JSON数据的导出。
解决步骤
1. 确认模板目录位置
检查JMeter安装根目录(如/home/apache-jmeter-5.5)下是否存在report-template文件夹,该文件夹是JMeter生成HTML报告的核心依赖,不能缺失或被移动。
2. 指定正确模板目录执行命令
在生成HTML报告时,通过-Jjmeter.report.template.dir参数手动指定正确的模板路径:
jmeter -g ./report.jtl -o ./myStat01 -Jjmeter.report.template.dir=/home/apache-jmeter-5.5/report-template
3. 修复不完整的JMeter安装
如果report-template文件夹不存在,说明你的JMeter安装包不完整,需重新下载官方完整安装包并解压,避免使用精简版或自行删除核心文件。
4. 规范工作目录
执行命令时确保当前工作目录为JMeter的bin目录,或使用绝对路径指定report.jtl和输出目录,避免路径解析错误。
内容的提问来源于stack exchange,提问作者Akhil Vasudevan
相关产品推荐
相关产品推荐

