Jmeter+Ant+Jenkins定时构建
这里Jenkins的安装部署以及工程项目的整体配置不做赘述,其它博文已经说明,这里主要是赘述Ant的相关配置,build.xml文件配置以及项目中的部分配置
一、build.xml
在Ant的安装目录下放入已经配置好的build.xml文件

然后在Jmeter的安装目录下新建一个层级文件夹work/resultLog,在resultLog目录下分别创建jtl和html目录

build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="接口性能监控" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="encoding" value="UTF-8" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="G:/apache-jmeter-5.2" />
<property name="report.title" value="接口性能监控"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${jmeter.home}/work/resultLog/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${jmeter.home}/work/resultLog/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="all">
<antcall target="test" />
<antcall target="report" />
<antcall target="mail" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="${jmeter.home}/bin/jmeter_scripts" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<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="dateReport" expression="${report.datestamp}"/>
<param name="titleReport" expression="${report.title}:${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>
<property name="mail_from" value="发送邮件的地址" />
<property name="password" value="邮箱密码" />
<!--mail_to:发送列表,多个之间逗号间隔 -->
<property name="mail_to" value="接收邮件地址" />
<property name="mailport" value="25" />
<!--邮箱需要开通smtp服务-->
<property name="mailhost" value="smtp邮件服务器地址" />
<target name="mail">
<loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="${encoding}" />
<mail from="${mail_from}" tolist="${mail_to}" mailport="${mailport}" mailhost="${mailhost}" user="${mail_from}" password="${password}" subject="TestReport-${ant.project.name}" messagemimetype="text/html">
<message>
本轮构建的结果如下:
${report}
</message>
</mail>
<delete file="${jmeter.result.htmlName}" />
</target>
</project>
在build.xml文件中我们要特别注意以下配置项(关系到是否能执行成功):
- jmeter.home 值为Jmeter的安装目录
- jmeter.result.jtl.dir & jmeter.result.html.dir 值对应的路径建议提前手动创建
- ${jmeter.home}/bin/jmeter_scripts 目录下的文件名要与被测的性能测试脚本名称保持一致
- mail_from 发送方邮箱地址
- password 发送方的邮箱密码(注意:如果是qq邮箱则为授权码,并且需要开启smtp邮箱服务)
- mail_to 接收方邮箱地址(多个地址用英文逗号相隔)
- mailhost 邮箱服务器地址
- mailport 邮箱服务器端口
注意:build.xml 文件中配置了jmeter脚本的存放位置,一定要在自己配置的文件下
二、Ant配置
在Jenkins中,Manage Jenkins—>Global Tool Configuration—>Ant下配置Ant参数,配置完成后点击保存

三、工程创建
1.创建一个自由风格的项目

2.构建配置
增加构建步骤—>Invoke Ant,配置对应的参数后,点击保存


3.开始构建
在刚创建的项目下点击Build Now开始构建,并等待构建完成

4.查看报告
1.测试报告文件



2.测试报告邮件



浙公网安备 33010602011771号