1、先配置好build.xml文件
如果持续集成,必须要按照以下文件配置
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property environment="env"/>
<property name="ReportName" value="TestReport" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\apache-jmeter-4.0" />
<!-- jmeter生成jtl、html格式的结果报告的路径-->
<property name="jmeter.result.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
<!-- 生成的报告的前缀-->
<property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />
<!-- GIT拉取到本地目录路径 -->
<property name="githome" value="${env.WORKSPACE}/autoscript/execute" />
<target name="run">
<echo message="start..."/>
<antcall target="clean" />
<antcall target="test" />
<antcall target="report" />
</target>
<target name="clean">
<mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本,includes里的文件也可以用逗号,隔开-->
<testplans dir="${githome}" 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.shanhe.me.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
2、邮件模板
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body>
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td colspan="2">
<h3 style="color: #0000FF">各位领导你好:</h3>
</td>
</tr>
<tr>
<td colspan="2"> ${PROJECT_NAME}的接口自动化测试运行报告已出,本次报告概要内容,详细请看附件:</td>
</tr>
<tr>
<td colspan="2"><br /> <b> <font color="#0000FF">测试计划概况</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>计划名称:</td>
<td>${PROJECT_NAME}</td>
</tr>
<tr>
<td>运行环境:</td>
<td><a href="${JENKINS_URL}">${JENKINS_URL}</a></td>
</tr>
<tr>
<td>触发原因:</td>
<td>${CAUSE}</td>
</tr>
<tr>
<td>构建编号:</td>
<td>第${BUILD_NUMBER}次构建</td>
</tr>
<tr>
<td style="color: #FF0000"><b>构建结果</b>:</td>
<td style="color: #FF0000"><b>${BUILD_STATUS}</b></td>
</tr>
<tr>
<td>构建 Url:</td>
<td><a href="${JOB_URL}${BUILD_NUMBER}/">${JENKINS_URL}job/XXX/job/XXX/${BUILD_NUMBER}/</a></td>
</tr>
<tr>
<td rowspan="2">测试报告:</td>
<td><a href="${JOB_URL}HTML_20Report/">${JENKINS_URL}job/XXX/job/XXX/HTML_20Report/</a></td>
</tr>
<tr>
<td><a href="${JOB_URL}performance">${JENKINS_URL}job/XXX/job/XXX/performance/</a></td>
</tr>
<tr>
<td colspan="2">
<hr size="2" width="100%" align="center" /> <b style="color: #FF0000">(本邮件是程序自动下发的,请勿回复!)</b>
</td>
</tr>
</table>
</body>
</html>
3、其他配置参照下图