一、工具的安装与环境变量配置
1、依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述
2、配置Jmeter&ant环境变量
Jmeter变量:
验证是否配置成功:cmd窗口非jmeter安装目录,输入jmeter.bat可打开jmeter程序,说明配置成功
ant变量:
验证是否配置成功,cmd窗口输入ant -version,返回如图所示,表明配置成功
二、编写Jmeter脚本和build.xml文件
1、编写Jmeter脚本
2、编写build.xml文件,内如如下,
ps:需要下载依赖jar包:xalan*.jar,serializer*.jar并复制到ant安装目录下的lib目录下;下载jmeter.results.shanhe.me.xsl文件并复制到jmeter的extras目录下,优化测试报告显示
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project name="zhtx_chaoshi" default="report" basedir="."> 4 <tstamp> 5 <!--format property="time" pattern="yyyyMMddkkmm" /--> 6 <format property="date" pattern="yyyy/MM/dd kk:mm:ss"/> 7 <!--kk是24小时制,KK是12小时制--> 8 </tstamp> 9 <!-- 需要改成自己本地的 Jmeter 目录--> 10 <property name="jmeter.home" value="D:/apache-jmeter-3.1" /> 11 <property name="report.title" value="Jmeter_zhtxAPITestReport"/> 12 <!-- jmeter生成jtl格式的结果报告的路径--> 13 <property name="jmeter.result.jtl.dir" value="D:/Jenkins/workspace/超市自动下单/jtl" /> 14 <!-- jmeter生成html格式的结果报告的路径--> 15 <property name="jmeter.result.html.dir" value="D:/Jenkins/workspace/超市自动下单/html" /> 16 <!-- 生成的报告的前缀--> 17 <!-- 生成的报告的名称--> 18 <property name="ReportName" value="DetailsReport" /> 19 <property name="ReportName2" value="SummaryReport" /> 20 <!--jtl的value值是D:\Jenkins\jmxReport\jtl\TestReport+yyyyMMddhhmm.jtl--> 21 <!--html的value值是D:\Jenkins\jmxReport\html\TestReport+yyyyMMddhhmm.html--> 22 <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> 23 <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" /> 24 <property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName2}.html" /> 25 26 27 <!-- 工程引用包 --> 28 <property name="lib.home" value="D:/apache-jmeter-3.1/xjar"/> 29 <!--jmx文件存放位置--> 30 <property name="jmxFile" value="D:/apache-jmeter-3.1/jmx"/> 31 32 <!--项目初始化设置--> 33 <target name="init" description="init" > 34 <!--删除jtl文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录--> 35 <delete verbose="true" includeemptydirs="true" > 36 <fileset dir="${jmeter.result.jtl.dir}" > 37 <include name="**/*" /> 38 </fileset> 39 </delete> 40 <!--删除html文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录--> 41 <delete> 42 <fileset dir="${jmeter.result.html.dir}"> 43 <include name="**/*"/> 44 </fileset> 45 </delete> 46 <!--<delete dir="${classes.home}"/> 47 <mkdir dir="${classes.home}"/>--> 48 </target> 49 50 <target name="test" depends="init"> 51 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 52 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 53 <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--> 54 <testplans dir="${jmxFile}" includes="超市订单online.jmx" /> 55 <!--声明生成的jtl文件是xml格式,否则会报错 --> 56 <property name="jmeter.save.saveservice.output_format" value="xml"/> 57 </jmeter> 58 </target> 59 <path id="xslt.classpath"> 60 <fileset dir="${lib.home}" includes="xalan*.jar"/> 61 <fileset dir="${lib.home}" includes="serializer*.jar"/> 62 </path> 63 64 <target name="report" depends="test" > 65 66 <xslt 67 classpathref="xslt.classpath" 68 force="true" 69 in="${jmeter.result.jtlName}" 70 out="${jmeter.result.htmlName}" 71 style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> 72 <param name="titleReport" expression="${report.title}"/> 73 <param name="dateReport" expression="${date}"/> 74 </xslt> 75 <xslt 76 classpathref="xslt.classpath" 77 force="true" 78 in="${jmeter.result.jtlName}" 79 out="${jmeter.result.htmlName2}" 80 style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> 81 <param name="titleReport" expression="${report.title}"/> 82 <param name="dateReport" expression="${date}"/> 83 </xslt> 84 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 85 <copy todir="${jmeter.result.html.dir}"> 86 <fileset dir="${jmeter.home}/extras"> 87 <include name="collapse.png" /> 88 <include name="expand.png" /> 89 </fileset> 90 </copy> 91 </target> 92 93 94 95 </project>
三、编辑配置文件
1、ant-jmeter-1.1.1.jar复制到jmeter的extras目录下
2、修改D:\apache-jmeter-3.1\bin下的jmeter.properties属性文件
# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
#response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
#Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=false
jmeter.save.saveservice.filename=false
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.idle_time=true
3、打开jenkins,安装所需插件并创建job
3.1、安装所需插件Email Extension Plugin,发送邮件
方法一:进入系统管理-管理插件--可选插件,安装
方法二:官网下载插件,然后进入进入系统管理-管理插件--高级设置,选择上传已下载好的插件
3.2 创建job,如图所示,job名字自定义
配置job
配置Editable Email Notification
设置发送邮件触发器
进入jenkins系统设置下,编辑邮件配置,如图所示
邮件正文内容如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title> </head> <body size="4" leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 20pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> <td>(本邮件是程序自动下发的,请勿回复!)</td> </tr> <tr> <td><h2> <font color="#0000FF">构建状态 - ${BUILD_STATUS}</font> </h2></td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="3" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>项目名称 : ${PROJECT_NAME}</li> <li>构建编号 : 第${BUILD_NUMBER}次构建</li> <li>触发原因: ${CAUSE}</li> <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li >变更集:${JELLY_SCRIPT,template="html"}</a></li> <li>SummaryReport:${FILE, path="D:/Jenkins/workspace/超市自动下单/html/SummaryReport.html"} <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></a></li> </ul> <hr size="3" width="100%" align="center" /> </td> </tr> </table> </body> </html>
到此,环境搭建成功,接下来构建查看结果显示
四、构建
1、选择创建的job,选择构建
查看构建日志
构建成功,自动发送测试报告邮件,截图如下