使用jmeter+ant+jenkins 搭建接口自动化测试

  一、操作环境:

  win10、apache-jmeter-5.2.1、apache-ant-1.10.10、jenkins.war

  二、环境下载:

  apache-ant:http://ant.apache.org/bindownload.cgi

  • ant安装

  下载后将压缩包解决至D盘目录,如图:

  配置环境变量:

  ANT_HOME:D:Programsapache-ant-1.10.10

  path:%ANT_HOME%in

  配置好后,打开cmd输入ant -version ,输出如图,表示成功

  安装成功后,修改Jmeter配置

  修改jmeterbin目录下的jmeter.properties文件

  jmeter.save.saveservice.output_format=xml

  三、环境准备好后,开始配置

  • 在D盘创建如下目录:jmeter-workspace、jmx、jtl、report、build.xml

  jmx:用于jmeter生成的*.jmx文件

  jtl:用于存放生成的*.jtl文件

  report:用于存放生成的*.html文件

  build.xml:用于ant执行的脚本文件

  注意:关于build.xml文件,网上有许多从jmeter生成的文件,复制过来进行修改,然后在ant文件放置一份,其实不用那么做,我用那种方式,没有成功

  • 完整的build.xml文件,自己使用时,复制一份,只需要修改里面提示的即可,

  需要特别注意:

  1、将jmeter扩展包[extras]下的 jmeter-results-detail-report_21.xslant-jmeter-1.1.1.jar 两个文件

  2、lib包文件下的 mail-1.5.0-b01.jar 

  一共3个文件都 放入ant安装文件的lib包中

<?xml version="1.0" encoding="utf-8"?>
<project name="test" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="MMddhhmm" />
    </tstamp>
    
    <!-- 需要改成自己本地的 Jmeter 目录-->
    
    <property name="jmeter.home" value="D:Program Filesapache-jmeter-5.2.1" />
    
    <!-- 需要修改第1个:jmeter生成jtl格式的结果报告的路径-->
    
    <property name="jmeter.result.jtl.dir" value="D:jmeter-workspacejtl" />
    
    <!-- 需要修改第2个:jmeter生成html格式的结果报告的路径-->
    
    <property name="jmeter.result.html.dir" value="D:jmeter-workspace
eport" />
    
    <!-- 生成的报告的前缀 -->
    <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" />
 
    <!-- 电脑地址 -->
    <property name="ComputerName" value="vincentwong" />
    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
        <antcall target="sendEmail" />
    </target>
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
        
            <!-- 需要修改第3个:声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
            
            <testplans dir="D:jmeter-workspacejmx" includes="*.jmx" />
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            
        </jmeter>
    </target>

    <target name="report">
    <tstamp> 
    <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/> 
    </tstamp>
    
    <xslt 
    in="${jmeter.result.jtlName}" 
    out="${jmeter.result.htmlName}" 
    style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
       <param 
     name="dateReport" 
     expression="${report.datestamp}"> 
       </param>
     </xslt>
    <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>

    <!-- 发送邮件 -->
    <!-- 需要修改第4个:收件人名字和收件内容 -->
   <target name="sendEmail">
   <mail mailhost="smtp.163.com" 
   mailport="25"
   user="发件人邮箱"   
   password="发件人设置的授权密钥" 
   ssl="false"    
   subject="xxxx后台接口功能自动化回归测试报告${time}" 
   messagemimetype="text/html">
   <from address="发件人邮箱"/>
   <to address="收件人邮箱1"/>
   <to address="收件人邮箱2"/>

   <fileset dir="${jmeter.result.html.dir}">   
   <include name="${ReportName}${time}.html"/> 
   <include name="collapse.png" />
   <include name="expand.png" /> 
   </fileset>
   <message charset="gb2312"> 
   Dear All:&lt;br /&gt;
     这是一封xxxx后台接口功能自动化回归报告的邮件。&lt;br /&gt;
     测试报告附在附件,请将图片和报告文件都下载在同文件夹,再使用浏览器打开查看。&lt;br /&gt; 
     谢谢。&lt;br /&gt;      
   </message>
  </mail>
 </target>
    
    
</project>

  四、集成jenkins

  • 创建一个job,命名jmeter-workspace,如图:

  • 构建:选择ant,安装好后,在下拉框会有选择提示,target填写构建后,触发的操作,根据build.xml文件中配置填写

参考:https://www.cnblogs.com/jc-home/p/11604754.html

原文地址:https://www.cnblogs.com/personblog/p/14809225.html