# jmeter配合Ant生成测试报告html

3 min read
Table of Contents

1


💬 回复: Jun (2021-10-12)

工具使用版本:
PS D:\apache-jmeter-5.3\extras> java -version
java version “14.0.2” 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

PS D:\apache-jmeter-5.3\extras> ant -version
Apache Ant(TM) version 1.10.11 compiled on July 10 2021

Jmeter5.3
1.官网下载编译好的工具JDK和ANT (https://ant.apache.org/),并配置环境变量
2.配置jmeter.properties和user.properties,修改jmeter.save.saveservice.output_format=xml(具体配置楼下贴出)
3.新建个build_test.xml(具体配置楼下贴出)
4.执行命令ant -buildfile build_test.xml即可输出报告
PS:ws请求的详细信息,在页面中不会显示(等空了修改好配置再发上来)


💬 回复: Jun (2021-10-12)

jmeter.properties

# legitimate values: xml, csv, db. Only xml and csv are currently supported.
jmeter.save.saveservice.output_format=xml
# The below properties are true when field should be saved; false otherwise
#
# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=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
# Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=true
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

user.properties

jmeter.save.saveservice.output_format=xml
meter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true

💬 回复: Jun (2021-10-12)

build_test.xml

<?xml version="1.0" encoding="utf-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm"/>
</tstamp>
<property name="basedirectory" value="D:\jmeter_case\html\test_report" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\apache-jmeter-5.3" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${basedirectory}"/>
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${basedirectory}"/>
<!-- Name of test (without .jmx) -->
<property name="test" value="Test3131"/>
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport2121"/>
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${test}.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${test}.html"/>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="run">
<antcall target="test"/>
<antcall target="report"/>
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="${basedirectory}" includes="testreport.jmx" />
</jmeter>
</target>
<target name="report">
<tstamp>
<format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/>
</tstamp>
<xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png"/>
<include name="expand.png"/>
</fileset>
</copy>
</target>
</project>

💬 回复: Jun (2021-10-12)

参考:
https://blog.csdn.net/qi_lin7/article/details/73911186?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242

https://www.cnblogs.com/hanxiaomin/p/6731810.html

https://blog.csdn.net/om934257/article/details/81183180

https://www.cnblogs.com/Akubi/p/5937994.html

https://blog.csdn.net/om934257/article/details/81183180

https://www.cnblogs.com/puresoul/p/5049433.html


💬 回复: Jun (2021-10-13)

Jun
修改了user.properties后,jmeter原本的生成报告命令(-o)可能会报错


Comments