Jmeter 3.0无法生成ANT HTML报告


问题内容

我正要拔掉我所有的头发,请有人帮我。

我正在使用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

我的user.properites文件包含-

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的压缩版本,所有这些都可以正常工作,我可以尝试将我的ant项目指向该项目?

希望有人能帮忙。


问题答案:

仔细检查<jmeter>你的部分 的build.xml 文件。默认的JMeter Ant
Task
假定.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特性(无论是msyyyy-MM-dd HH:mm:ss,因为它可能导致与仪表板生成问题),具有不同值的重复属性名称是不是一个很好的做法。

有关通过Ant任务运行JMeter测试以及其他启动JMeter测试的方法的更多信息,请参见不使用JMeter
GUI来启动JMeter测试的五种方法。