一.环境配置:
1.需要安装JDK1.6以上版本:http://www.oracle.com/technetwork/java/javase/downloads/index.html
验证是否安装成功:开始→运行→输入cmd,回车→在命令中输入java -version,出现如下信息则表示安装成功
2.ant下载:http://ant.apache.org/bindownload.cgi
验证是否安装成功:开始→运行→输入cmd,回车→在命令中输入ant -v,出现如下信息则表示安装成功
3.将jmeter中extras目录中的ant-jmeter-1.1.1.jar文件拷贝至ant安装目录下的lib目录中
4.修改jmeter目录下bin目录中的jmeter.properties文件的配置,将jmeter.save.saveservice.output_format=csv前面添加“#”,屏蔽它,在其下面一行添加 jmeter.save.saveservice.output_format=xml 配置,如下图所示:
5.建立build.xml文件(我是在eclipse里面建立的,也可以使用txt文本,EditPlus等工具进行建立),注意,在网上拷贝的很多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="D:\apache-jmeter-3.2"/> <property name="report.title" value="apitest"/>
<!--生成jtl报告的路径-->
<property name="jmeter.result.jtl.dir" value="E:\auto_jmeter\Jmeter_Results\jtl"/>
<!--生成html报告的路径--> <property name="jmeter.result.html.dir" value="E:\auto_jmeter\Jmeter_Results\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}">
<!--声明要运行的jmeter脚本的路径,*.jmx指所有后缀名为.jmx的jmeter脚本--> <testplans dir="E:\auto_jmeter\Jmeter_Script" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <!--有好多网上build.xml文件中没有这部分,但是如果不添加就不会显示报告日期和运行的时间(MAX和MIN列)--> <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-detail-report_21.xsl"> <param name="showData" expression="${show-data}"/> <param name="titleReport" expression="${report.title}"/> <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>
6.开始运行脚本
命令中输入build.xml文件所在的路径,
cmd→e: 回车,进入所在盘符;
E:\cd 跟着要进入的文件夹 ,如图所示:
7.输入ant 或 ant run(run为build.xml中的task的名字),执行结果如下:
8.查看报告信息
常见问题:
运行时提示:the <jmeter> type doesn't support nested text data
这是因为build.xml文件的编码格式有问题,记住一定要把里面的汉字全部删除,或者设置编码格式与系统一致。