Continuous integration (CI): Jmeter + Ant + Jenkins Timing Construction

  Jenkins overall installation and deployment project configuration not repeat them here, other Bowen has been explained, here is mainly go into the Ant configuration, build.xml configuration file and the project part of the configuration

A, build.xml

  Already configured into build.xml file in the installation directory of the Ant

  Then create a new hierarchy file in the installation directory folder Jmeter work / resultLog, create jtl and html directory in the directory are resultLog

  build.xml document reads as follows:

<?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  邮箱服务器端口

二、Ant配置

  在Jenkins中,Manage Jenkins—>Global Tool Configuration—>Ant下配置Ant参数,配置完成后点击保存

三、工程创建

1.创建一个自由风格的项目

2.构建配置

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

 

3.开始构建

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

4.查看报告

1.测试报告文件

2.测试报告邮件

Guess you like

Origin www.cnblogs.com/xiaogongjin/p/12014373.html