我快要把头发都拔掉了,有人请帮帮我。
我正在使用JMeter 3.0并尝试从我的jtl文件生成仪表板报告,但是我收到错误-
result.jtl' does not contain the field names header, ensure the jmeter.save.saveservice.* properties are the same as when the CSV file was created or the file may be read incorrectly
我的用户文件包含 -
jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.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.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy-MM-dd HH:mm:ss
jmeter.save.saveservice.print_field_names=true
这些值在 jmeter.properties 文件中也是相同的,只是为了确保我没有丢失任何东西......
我真的无法弄清楚为什么我不能让 jtl 包含标题,我已经遵循了我能找到的所有指南,而且我似乎做对了。
有人可以指出我缺少什么,或者包括他们的 jmeter 的压缩版本,我可以尝试将我的蚂蚁项目指向它吗?
希望有人能帮忙。
仔细检查构建.xml文件的<jmeter>
部分。默认的 JMeter Ant 任务采用 .jtl 结果文件的 XML 输出输出格式,因此如果您有以下行:
<property name="jmeter.save.saveservice.output_format" value="xml"/>
只需将其注释掉或删除,您的问题应该得到解决。
我不认为 JMeter Ant Task 尊重通过user.properties文件的覆盖,最好使用jmeterproperties属性或在 Ant 构建文件中显式指定相关配置,例如:
<target name="test">
<jmeter
jmeterhome="${jmeter.home}"
testplan ="${testpath}/${test}.jmx"
resultlog="${testpath}/${test}.jtl">
<property name="jmeter.save.saveservice.output_format" value="csv"/>
<property name="jmeter.save.saveservice.print_field_names" value="true"/>
<property name="jmeter.save.saveservice.timestamp_format" value="ms"/>
<!--etc.-->
</jmeter>
</target>
我还建议选择jmeter.save.saveservice.timestamp_format
属性之一(ms
或yyyy-MM-dd HH:mm:ss
,因为这可能会导致仪表板生成问题),具有不同值的重复属性名称不是一个很好的做法。
有关通过 Ant 任务运行 JMeter 测试以及其他启动 JMeter 测试的方法的更多信息,请参阅不使用 JMeter GUI 启动 JMeter 测试的五种方法一文
我在你发布之前就注意到了,但它是正确的,XML类型在构建中被硬编码.xml,现在我已经改变了它,一切都在工作:)