一、JMeter+ant+Jenkins 框架简介
JMeter+ant+Jenkins是一个轻量级接口测试框架,这里会用到以下知识点:
1、jmeter的使用 2、接口测试 3、ant 4、tomcat部署
上面博文已经介绍了环境的准备:1、Jenkins 2、JDK 3、Ant
下面进入到接口测试阶段。
二 、Ant调用jmeter接口步骤
1、安装好Ant和Jmeter。
2、完成一个Jmeter接口脚本,并保证是正确的。
3、将Jmeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复 制到Ant所在目录lib子目录下。
4、将jmeter.results.shanhe.me.xsl放到jmeter的extras目录下。
这是jmeter报告的html模板,可自行放入自己的模板。
5、修改jmeter目录下的bin/jmeter.properties,找到 jmeter.save.saveservice.output_format,去掉注释并设置为xml。
6、创建脚本目录
脚本目录的作用:
1、mhk_ant_jmeter文件夹下有result和script连个子目录和 build.xml文件。
2、script目录用来存放jmeter脚本的。
3、build.xml文件是ant的核心配置文件。
4、result文件夹下有html和jtl两个子目录。
5、jtl目录用来存放jmeter生成的结果文件。
6、html用来存放最后生成的测试报告(html类型)。
三、新建build.xml文件,内容如下:
这里的许多路径都要换成自己的路径:
1 <?xml version="1.0" encoding="utf-8"?> 2 <project name="jmeter_test" default="all" basedir="."> 3 <tstamp> 4 <format property="time" pattern="yyyyMMddhhmm" /> 5 </tstamp> 6 <!-- 需要改成自己本地的 Jmeter 目录--> 7 <property name="jmeter.home" value="E:\apache-jmeter-5.1.1" /> 8 <!-- jmeter生成jtl格式的结果报告的路径--> 9 <property name="jmeter.result.jtl.dir" value="C:\Users\wuzongmei\Desktop\day9\mhk_ant_jmeter\result\jtl" /> 10 <!-- jmeter生成html格式的结果报告的路径--> 11 <property name="jmeter.result.html.dir" value="C:\Users\wuzongmei\Desktop\day9\mhk_ant_jmeter\result\html" /> 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 <!-- 接收测试报告的邮箱 --> 17 <!--<property name="mail_to" value="[email protected]" /> 不用ant来发邮件,用Jenkins--> 18 <!-- 电脑地址 --> 19 <property name="ComputerName" value="wuzm" /> 20 <target name="all"> 21 <antcall target="test" /> 22 <antcall target="report" /> 23 </target> 24 <target name="test"> 25 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /><!-- 一个类名,无需修改 --> 26 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 27 <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 --> 28 <testplans dir="C:\Users\wuzongmei\Desktop\day9\mhk_ant_jmeter\script" includes="*.jmx" /><!-- 以.jmx结尾的都执行 --> 29 <property name="jmeter.save.saveservice.output_format" value="xml"/><!--和jmeter.properties里的配置一样--> 30 </jmeter> 31 </target> 32 <path id="xslt.classpath"> 33 <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> 34 <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> 35 </path> 36 <target name="report"> 37 <tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp> 38 <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-report_zw.xsl" > 39 <param name="dateReport" expression="${report.datestamp}"/> 40 </xslt> 41 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 42 <copy todir="${jmeter.result.html.dir}"> 43 <fileset dir="${jmeter.home}/extras"> 44 <include name="collapse.png" /> 45 <include name="expand.png" /> 46 </fileset> 47 </copy> 48 </target> 49 <!-- 发送邮件 --> 50 </project>
四、通过build运行jmeter脚本
在cmd下,进入到build所在目录,然后执行命令:ant,如下图,则运行成功
则在result\html 目录下可以看到生成的html报告,如下:
五、打开该报告,可以看到没有返回和请求数据
解决办法:进入jmeter.properties,把下面几句代码注释去掉,然后改为true