ant + jmter 执行jmter脚本并生成测试报告

首先,要确保测试服务器上有java,ant,jmter

安装此处就不阐述了, 下面现在说一下通过ant生成jmter测试结果报告;

1.首先需要将jmter目录下extras目录中的ant-jmeter-1.1.1.jar 拷贝到ant 目录下lib文件夹中

2.然后进入jmter目录下extras目录中, 执行ant命令, 测试下看是否能够生成test.jtl和test.html

3.ant是通过build.xml来生成测试结果报告的,而build.xml中配置的都是一些脚本信息,如测试脚本路径,测试报告生成路径

   备注:Xml文件要转化为html文件,需要编写xsl文件,实际上,jmeter已经自带了xsl文件,如果你不想自己定义格式的话,可以直接使用自带的格式,这样可以省不少事情。这些文件的位置位于jmeter的extras文件夹下,只需要简单修改一些文件路径配置就可以正常使用。

4.build.xml代码配置如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="ant-jmeter-test" default="run" basedir=".">
 3     <tstamp>
 4         <format property="time" pattern="yyyyMMddhhmm" />
 5     </tstamp>
 6     <!-- 需要改成自己本地的 Jmeter 目录-->
 7     <property name="jmeter.home" value="C:softapache-jmeter-2.11" />
 8     <!-- jmeter生成jtl格式的结果报告的路径-->
 9     <property name="jmeter.result.jtl.dir" value="C:softjmter
esultLogjtl" />
10     <!-- jmeter生成html格式的结果报告的路径-->
11     <property name="jmeter.result.html.dir" value="C:softjmter
esultLoghtml" />
12     <!-- 生成的报告的前缀-->
13     <property name="ReportName" value="TestReport" />
14     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
15     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
16     <target name="run">
17         <antcall target="test" />
18         <antcall target="report" />
19     </target>
20     <target name="test">
21         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
22         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
23             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
24             <testplans dir="C:soft	estpath" includes="*.jmx" />
25             <property name="jmeter.save.saveservice.output_format" value="xml"/>
26         </jmeter>
27     </target>
28     <path id="xslt.classpath">
29         <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
30         <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
31     </path>
32     
33     
34     <target name="report">
35         <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
36         <xslt 
37               classpathref="xslt.classpath"
38               force="true"
39               in="${jmeter.result.jtlName}"
40               out="${jmeter.result.htmlName}"
41               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
42               <param name="dateReport" expression="${report.datestamp}"/>
43        </xslt>         
44         <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
45         <copy todir="${jmeter.result.html.dir}">
46             <fileset dir="${jmeter.home}/extras">
47                 <include name="collapse.png" />
48                 <include name="expand.png" />
49             </fileset>
50         </copy>
51     </target>
52 </project>
View Code
5.运行脚本:
cmd进入脚本目录,然后执行ant build.xml,生成测试结果报告,
测试结果报告输出目录:
C:softjmter esultLoghtml:
测试结果报告如下:
 
 
 
 
其中需要主要关注的就是build.xml中的一些配置信息,如测试报告的路径, 以及转换过程中需要用到的文件路径。
遇到的问题:
如果测试报告中生成的时间为N/A, 参考以下url:
 
参考:http://www.cnblogs.com/puresoul/p/4808416.html
参考:http://www.cnblogs.com/puresoul/p/5053035.html
原文地址:https://www.cnblogs.com/apnsa/p/5149048.html