效果图: (请忽略具体结果)
1.首先 jmeter 需要配置环境变量。
关于环境变量此处就不自学叙说了,不知道的可以自行百度。
2.jmeter 生成详细html报告需要下次一个文件。“jmeter.results.shanhe.me.xsl” 此文件现在地址如下
由于部分同学抱怨下载需要积分,我就提供我自己的百度网盘链接(包含build.xml 文件):
链接:https://pan.baidu.com/s/1XD2Ytwu5hBOB5_ysR3gexg 密码:q2b1
该文件下载之后,请放到jmeter安装目录的 extras 目录下。
3. 修改Jmeter.properties
》为防止乱码出现 请务必修改编码 :UTF-8
》 由于HTML报告的需要,针对jmeter生成的jtl文件所包含的数据需要做新的配置,以满足测试需求修改生成的jtl文件为xml格 式存储数据
*注意: 我的配置文件中的 “#jmeter.save.saveservice.output_format=xml” 前面的#没有取消 是因为我在使用ant 的时候 c 出现了报错,为此我特意把他注销,如果 部分同学使用ant 集成并且没有报错可以试着把前面的#去掉。
4.最后一步修改build.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的jmeter目录-->
<property name="jmeter.home" value="F:\apache-jmeter-3.2\apache-jmeter-3.2" />
<!-- jmeter生成的jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="F:\apache-jmeter-3.2\apache-jmeter-3.2\log\jtl" />
<!-- jmeter生成的html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="F:\apache-jmeter-3.2\apache-jmeter-3.2\log\html" />
<!-- ʺ生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<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="F:\apache-jmeter-3.2\apache-jmeter-3.2\workspace" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<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>
5.以上步骤完成后,就可以使用命令行执行脚本来生成HTML报告了。
首先:执行脚本如下
jmeter -n -t f:apache-jmeter-3.2\apache-jmeter-3.2\workspace\xxx.jmx -l f:apache-jmeter-3.2\apache-jmeter-3.2\workspace\2.txt -e -o f:apache-jmeter-3.2\apache-jmeter-3.2\workspace\on
当然,上面所述的在命令窗口输入参数 执行有点麻烦,总不能每次都是这样,太繁琐了。 推荐一下向小编我这样的懒癌晚期的人使用.bat 批处理文件进行快速执行。每次需要执行时只需要双击.bat文件 就可自动执行,是不是很方便。 批处理文件如何创建的呢? 新建txt文档,重命名后缀名为.bat 就可以了。 如果想修改 就是用文本编辑器打开。
批处理代码:
非 ant 集成
@echo off
set now=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% // 获取当前时间年月日时分秒 (用当前时间进行创建日志文件,和HTML报告文件夹名称)
jmeter -n -t %JMETER_HOME%\workspace\首页优化.jmx -l %JMETER_HOME%\workspace\%now%.txt -e -o %JMETER_HOME%\workspace\%now%
pause
ant集成 :
%ANT_HOME%\bin\ant -f %JMETER_HOME%\workspace\build.xml
上面参数讲解:
jmeter : 环境变量
-n -t f:apache-jmeter-3.2\apache-jmeter-3.2\workspace\首页优化.jmx : 脚本存放路径
-l f:apache-jmeter-3.2\apache-jmeter-3.2\workspace\2.txt : 脚本日志路径 可以用 jtl/txt
-e -o f:apache-jmeter-3.2\apache-jmeter-3.2\workspace\on : html 报告文件夹
注意 以上生成的 日志文件 和 报告文件夹均不能重复。