jenkins+jmeter+ANT构建接口测试平台

本文详细介绍如何使用JMeter和ANT构建自动化接口测试环境,包括环境配置、组件关联及Jenkins集成,实现测试用例执行与报告自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,组件介绍

  • jmeter
    jmerter编写接口测试用例
  • ANT
    编写ANT脚本缺省为<build.xml文件>用来执行接口测试用例,并生成测试报告
  • jenkins
    jenkins执行ANT脚本,并展示生成的测试报告

二,环境准备

  • ANT安装
    • 点击下载ANT

    • ANT环境配置(windows)

      ANT_HOME    C:/apache-ant-1.10.5
      
      path        C:/apache-ant-1.10.5/bin
      
      classpath   C:/apache-ant-1.10.5/lib
      
      cmd输入:	ant -version
      

      出现以下样式说明配置成功

      Apache Ant(TM) version 1.10.5 compiled on July 10 2018
      
  • jmeter安装
    • jdk安装(常规组件安装不赘述)
      点击下载jdk

      cmd输入:	java -version
      

      出现类似样式配置成功:

      java version "1.8.0_181"
      Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
      Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
      
    • jmeter安装
      点击下载jmeter

    • 解压配置环境变量
      新建变量名
      JMETER_HOME
      变量值
      D:\jmeter\apache-jmeter-4.0 (根据自己安装目录)
      变量名
      Path
      变量值
      ;%JMETER_HOME%\bin;
      变量名
      CLASSPATH
      变量值%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

    • 启动jmeter
      jmeter安装目录中的bin目录下jmeter.bat 双击启动


  • jenkins安装(此账号置顶博客有详细说明)

三,组件配置

  • ANT和jmeter关联
    • jmeter的extras目录下ant-jmeter-1.1.1.jar文件复制到ANT的lib目录下

    • jmeter配置文件修改:
      修改jmeter的bin目录下的jmeter.properties文件中

      jmeter.save.saveservice.output_format=csv
      

      修改为:

      jmeter.save.saveservice.output_format=xml
      

      以下列修改为TRUE:

      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
       Only available with HttpClient4
      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
       Only available with HttpClient4
      jmeter.save.saveservice.sent_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
      

  • 创建build.xml文件放到ANT目录下作为ANT启动脚本
    注:html/jtl文件生成目录要配置到jenkins相对工作空间!
    类似这种格式:F:\jenkins\workspace\test
 <?xml version="1.0" encoding="UTF-8"?>
    <project name="ant-jmeter-test" default="run" basedir=".">
         <tstamp>
             <format property="time" pattern="yyyyMMddhhmm" />
         </tstamp>
     
        <!-- 需要改成自己本地的 Jmeter 目录-->  
        <property name="jmeter.home" value="D:\jmeter\apache-jmeter-4.0" />
        <!-- jmeter生成jtl格式的结果报告的路径--> 
        <property name="jmeter.result.dir" value="F:\jenkins\workspace\InterfaceTestCase\Report" />  
        <property name="jmeter.detail_result.dir" value="F:\jenkins\workspace\InterfaceTestCase\DetailReport" /> 
        <!-- 生成的报告的前缀-->    
        <property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${jtl_Report}.jtl" /> 
    
        <!-- 生成整体的聚合报告--> 
    	
        <property name="jmeter.result.htmlName"  value="${jmeter.result.dir}/${time}.html" /> 
    	
        <!-- 生成单个接口的详细报告--> 
    
        <property name="jmeter.result.htmlName-detail" value="${jmeter.detail_result.dir}/${time}.html" /> 
         
        <target name="run">
             <echo message="start..."/>
             <antcall target="clean" />
             <antcall target="test" />
             <antcall target="report" />
             <antcall target="report_detail" />
         </target>
         
         <target name="clean">
             <mkdir dir="F:\jenkins\workspace\InterfaceTestCase\Report" />
             <mkdir dir="F:\jenkins\workspace\InterfaceTestCase\DetailReport" />
         </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="D:\jmeter\apache-jmeter-4.0\ant\xmlcase" includes="*.jmx" />
                 
                 <property name="jmeter.save.saveservice.output_format" value="xml"/>
             </jmeter>
         </target>
    
    
         <!-- 生成整体的聚合报告--> 
         <target name="report">
             <xslt in="${jmeter.result.jtlName}"
                   out="${jmeter.result.htmlName}"
                   style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /><!-- 生成整体的聚合报告的xsl文件--> 
    
             <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
             <copy todir="${jmeter.result.dir}">
                 <fileset dir="${jmeter.home}/extras">
                     <include name="collapse.jpg" />
                     <include name="expand.jpg" />
                 </fileset>
             </copy>
         </target>
    
     
    
         <!-- 生成单个接口的详细报告--> 
    
         <target name="report_detail">
             <xslt in="${jmeter.result.jtlName}"
                   out="${jmeter.result.htmlName-detail}"
                   style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" /><!-- 生成单个接口的详细报告的xsl文件--> 
             <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
             <copy todir="${jmeter.result.dir}">
                 <fileset dir="${jmeter.home}/extras">
                     <include name="collapse.jpg" />
                     <include name="expand.jpg" />
                 </fileset>
             </copy>
         </target>
     </project>


  • 运行build.xml文件
    cmd到build.xml文件目录下ANT运行
D:\jmeter\apache-jmeter-4.0\ant>dir
2019/04/11  16:45             3,477 build.xml

D:\jmeter\apache-jmeter-4.0\ant>ant
生成如下文件表示成功:
report:
     [xslt] Processing F:\jenkins\workspace\InterfaceTestCase\Report\${jt
l_Report}.jtl to F:\jenkins\workspace\InterfaceTestCase\Report\2019041210
07.html
     [xslt] Loading stylesheet D:\jmeter\apache-jmeter-4.0\extras\jmeter-results
-detail-report_21.xsl
report_detail:
     [xslt] Processing F:\jenkins\workspace\InterfaceTestCase\Report\${jt
l_Report}.jtl to F:\jenkins\workspace\InterfaceTestCase\DetailReport\2019
04121007.html
     [xslt] Loading stylesheet D:\jmeter\apache-jmeter-4.0\extras\jmeter.results
.shanhe.me.xsl

  • jmeter-results-detail-report_21.xsl格式的html文件用来展示整体case运行
    在这里插入图片描述
  • jmeter.results.shanhe.me.xsl格式的html文件用来展示具体请求响应
    在这里插入图片描述

  • 配置jenkins
    • 新建一个工程

    • 安装如下插件

      Ant Plugin 
      Performance plugin
      HTML Publisher plugin
      

  • 进行如下配置
    构建配置Invoke Ant

      Ant Version	: 选择Ant
      Build File    : 添加build路径
    

在这里插入图片描述


  • 构建后操作Publish HTML reports
    • reports

      HTML directory to archive		:配置html报告路径
      Index page[s]			 		:*.html
      Index page title[s] (Optional)	:*.html
      Report title					:HTML Report
      

在这里插入图片描述


  • 构建后操作添加Publish Performance test result report

    	Source data files (autodetects format):	配置jtl文件路径
    

在这里插入图片描述


  • 配置完毕构建一发
    在这里插入图片描述
    构建历史可以看到,经过二个小时20遍才构建成功,难度不大过程略繁琐,不过还是因人而异,本人略菜,233

  • jenkins展示测试报告
    在这里插入图片描述
    在这里插入图片描述
    jenkins等于帮我们完成了build文件的运行及测试报告的展示,经过上述构建,我们再进行接口测试只需要进行接口用例的编写,然后点击jenkins构建就ok了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值