由于数据为空,没有仪表板报告

No Dashboard Report Due to Null data

我在 cmd 上使用这个命令来生成我的报告:

jmeter -n -t C:\Users\Hp\Desktop\WRALoadTest\TestScript.jmx -l C:\Users\Hp\Desktop\WRALoadTest\result.csv -f -e -o C:\Users\Hp\Desktop\WRALoadTest\HTMLReport

但我收到错误消息:

发生错误:无法调用“org.apache.jmeter.report.processor.MapResultData.getResult(String)”,因为“resultData”为空

我的 csv 文件除了列标题外是空的,所以我想其中没有生成数据,但这是什么原因?

也尝试在 jmeter 上手动执行它,但它给出了同样的错误。

Error while producing dashboard report

谁能告诉我我可能做错了什么?

如果您的 result.csv 是空的,那么您绝对无法生成仪表板。

主要问题是为什么它是空的,这意味着你的测试不知何故失败了,原因可能是:

  1. 如果您的测试依赖于 CSV 文件并使用 CSV Data Set Config 此文件的错误路径可能会导致整个测试失败

  2. 如果您的测试依赖于 JMeter Plugin and the plugin is not installed - you won't be able to run it or even open the test plan in JMeter GUI, if this is the case use JMeter Plugins Manager

  3. 情况可能是您已 Thread Group 配置为在第一次采样器失败后停止测试

确切的答案在 jmeter.log file 中,如果出现任何问题,您总能在那里找到原因(或至少是扩展信息),因此请检查它是否有任何可疑条目,如果您无法找到自己找出失败的根本原因 - 使用 jmeter.log 文件内容

更新您的问题

我遇到了完全相同的错误,但这对我来说不是 CSV 问题。

根据您的测试,如果您使用的是 -reportatendofloadtests JMeter 参数,您可能需要添加一个 tearDown 线程组,然后向该 tearDown 添加一个 JSR223 采样器。

Sampler 不需要发出任何请求,例如只需要这段代码:

SampleResult.setIgnore();

这将允许生成报告并且您不会收到任何错误消息。