Ant+Jmeter+Jenkins集成
准备工作
-
安装配置Java环境
-
安装Tomcat和Jenkins
-
安装Ant
配置
1.将Jmeter安装目录apache-jmeter-3.0\extras文件夹中的ant-jmeter-1.1.1.jar复制到Ant安装目录下的lib文件夹下。
2.修改Jmeter配置文件jmeter.properties
- 修改jtl文件格式
- 添加jtl文件结果参数
3.编写ant的build.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project name="ant-jmeter-test" default="run" basedir="."> 4 <tstamp> 5 <format property="time" pattern="yyyyMMddHHmm" /> 6 </tstamp> 7 8 <property name="TestScript" value="login" /> 9 10 <!--本地Jmeter目录--> 11 <property name="jmeter.home" value="D:\apache-jmeter-3.0" /> 12 <!--jmeter生成jtl、html格式的结果报告的路径--> 13 <property name="jmeter.result.jdir" value="jmeter\results\jtl" /> 14 <property name="jmeter.result.hdir" value="jmeter\results\html" /> 15 <!--生成的报告--> 16 <property name="jmeter.result.jtlName" value="${jmeter.result.jdir}/${TestScript}${time}.jtl" /> 17 <property name="jmeter.result.htmlName" value="${jmeter.result.hdir}/${TestScript}${time}.html" /> 18 <!--Git拉取到本地,脚本地址--> 19 <property name="githome" value="jmxs" /> 20 21 22 <target name="run"> 23 <echo message="start..." /> 24 <antcall target="init" /> 25 <antcall target="test" /> 26 <antcall target="report" /> 27 </target> 28 29 <target name="init"> 30 <mkdir dir="${jmeter.result.jdir}" /> 31 <mkdir dir="${jmeter.result.hdir}" /> 32 </target> 33 34 <target name="test"> 35 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 36 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 37 38 <!--声明要运行的脚本:“*.jmx”指包含此目录下的所有Jmeter脚本,includes里的文件用逗号隔开--> 39 <testplans dir="${githome}" includes="${TestScript}.jmx" /> 40 41 <property name="jmeter.save.saveservice.output_format" value="xml" /> 42 </jmeter> 43 </target> 44 45 <!--获取jar包--> 46 <property name="lib.dir" value="${jmeter.home}/lib" /> 47 <path id="xslt.classpath"> 48 <fileset dir="${lib.dir}" includes="xalan*.jar" /> 49 <fileset dir="${lib.dir}" includes="serializer*.jar" /> 50 </path> 51 52 <!--把生成的.jtl数据文件转换成.html格式的报告--> 53 <!-- 自己选择测试报告模板 --> 54 <target name="report"> 55 <tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> 56 <xslt 57 classpathref="xslt.classpath" 58 force="true" 59 in="${jmeter.result.jtlName}" 60 out="${jmeter.result.htmlName}" 61 style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> 62 <param name="dateReport" expression="${report.datestamp}" /> 63 </xslt> 64 65 <!--生成报告的时候,需要手动将相关的图片一起起拷贝至目标目录--> 66 <copy todir="${jmeter.result.hdir}"> 67 <fileset dir="${jmeter.home}/extras"> 68 <include name="collapse.png" /> 69 <include name="expand.png" /> 70 </fileset> 71 </copy> 72 </target> 73 74 </project>
4.测试ant命令是否生效
注意:
不同的测试报告模板生成的HTML结果报告:
jmeter-results-detail-report_21.xsl
显示了用例数、成功率、响应时间
jmeter.results.shanhe.me.xsl
显示各请求的详细结果
5.配置Jenkins
- 安装插件
- 全局工具配置
- 新建一个“构建一个自由风格的软件项目”
- 参数化脚本名
配置完成,进行构建实践
注意:
HTML Publisher Plugin 插件在新的Jenkins版本中会导致打开的网页中无法加载CSS以及无法点击按钮的情况,由于CSP导致,可在Jenkins控制台中执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
以解决此问题。其他由于CSP原因导致的html插件也可用此方法解决