Jmeter+ant+Jenkins构建接口自动化测试

1、已写好jmeter脚本
2、安装ant并将ant-jmeter-1.1.1.jar文件放入ant/lib目录,用于调用jmeter
3、修改jmeter的jmeter.properties文件(将下面配置直接放入改文件):

		    jmeter.save.saveservice.output_format=xml 
			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=true
			jmeter.save.saveservice.requestHeaders=true
			jmeter.save.saveservice.encoding=false
			jmeter.save.saveservice.bytes=true
			jmeter.save.saveservice.url=true
			jmeter.save.saveservice.filename=true
			jmeter.save.saveservice.hostname=true
			jmeter.save.saveservice.thread_counts=true
			jmeter.save.saveservice.sample_count=true
			jmeter.save.saveservice.idle_time=true

4、网上找个jmeter.results.shanhe.me.new.xsl包放入jmeterextras目录中:报告输出模板

5、新建一个TestCase(用于放测试脚本及报告和构建文件build.xml)

6、在TestCase新建report文件和build.xml文件,及将执行脚本放入TestCase文件中:
report文件新建HTML和JTL文件夹用于存放生成的html报告及jtl文件
build.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<!-- 需要改成自己本地的 Jmeter 目录-->  
<property name="jmeter.home" value="E:apache-jmeter-5.0apache-jmeter-5.0" />
<property name="report.title" value="接口测试"/>
<!-- jmeter生成jtl格式的结果报告的路径--> 
<property name="jmeter.result.jtl.dir" value="E:apache-jmeter-5.0apache-jmeter-5.0TestCase
eportJTL" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="E:apache-jmeter-5.0apache-jmeter-5.0TestCase
eportHTML" />
<!-- 生成的报告的前缀-->  
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<target name="run">
    <antcall target="test" />
    <antcall target="report" />
</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="E:apache-jmeter-5.0apache-jmeter-5.0TestCase" includes="*.jmx" />
        <property name="jmeter.save.saveservice.output_format" value="xml"/>
    </jmeter>
</target>
<path >
    <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.new.xsl">
          <param name="dateReport" expression="${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>

7、安装Jenkiins 并构建jmeter脚本
Jmeter+ant+Jenkins构建接口自动化测试

Jmeter+ant+Jenkins构建接口自动化测试

构建环境选用调用ant,把刚配置好的构建文件build.xml路径放到构建文件中,
再添加一个window批处理命令,用于删除上次产生的jtl文件(作用:使报告不产生重复数据):
cd E:apache-jmeter-5.0apache-jmeter-5.0in
E:
del /s /Q E:apache-jmeter-5.0apache-jmeter-5.0TestCase eportJTLTestReport.jtl
pause
Jmeter+ant+Jenkins构建接口自动化测试
构建后操作添加一个Publish Html report(插件自行下载)用于在jenkins上显示报告,对应加上测试报告文件路径及报告名称
Jmeter+ant+Jenkins构建接口自动化测试

新增一个构建后操作:邮件发送,Editable Email Notification
Jmeter+ant+Jenkins构建接口自动化测试

Default Content(报告样式)可到网上自己找或自己写一个:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title></head>
  <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <div>
      <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
          <th align="center" colspan="2">
            <br />
            <h2>构建信息</h2></th>
        </tr>
        <tr>
          <td>
            <ul>
              <li>项目名称 : ${PROJECT_NAME}</li>
              <br />
              <li>详细测试报告 :
                <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
              <br />
               <li>说明:打开测试报告地址后请点击HTML Report查看报告详情</li>
              <br />
              <li>触发原因: ${CAUSE}</li>
              <br />
              <li>项目 Url :
                <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
              <br /></ul>
          </td>
          <td>${JELLY_SCRIPT,template="html"}
            <br/></tr>
        <tr>
          <td colspan="2" align="center">
            <br />
        </tr>
        <tr>
          <td colspan="2" align="center">
        </tr>
      </table>
    </div>
  </body>
</html>

8、Jenkins发送邮箱配置---系统配置:
Jmeter+ant+Jenkins构建接口自动化测试

Password为邮箱客户端授权密码
Default Content:配置默认格式
Jmeter+ant+Jenkins构建接口自动化测试
Jmeter+ant+Jenkins构建接口自动化测试

9、集成到钉钉发送钉钉提示信息:
系统配置-插件管理下载钉钉插件
10、在构建项目-配置中新增构建后操作添加钉钉机器人后复制对应的 token就可以了:
Jmeter+ant+Jenkins构建接口自动化测试

11、测试报告:
Jmeter+ant+Jenkins构建接口自动化测试

Jmeter+ant+Jenkins构建接口自动化测试