• Jmeter+Ant+Jenkins定时构建


    这里Jenkins的安装部署以及工程项目的整体配置不做赘述,其它博文已经说明,这里主要是赘述Ant的相关配置,build.xml文件配置以及项目中的部分配置

    一、build.xml

      在Ant的安装目录下放入已经配置好的build.xml文件

      然后在Jmeter的安装目录下新建一个层级文件夹work/resultLog,在resultLog目录下分别创建jtl和html目录

      build.xml文件内容如下:

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

    注意:build.xml 文件中配置了jmeter脚本的存放位置,一定要在自己配置的文件下

    二、Ant配置

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

    三、工程创建

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

    2.构建配置

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

     

    3.开始构建

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

    4.查看报告

    1.测试报告文件

    2.测试报告邮件

  • 相关阅读:
    python,生产环境安装
    neo4j 图数据库
    RNN系列
    机器学习关于AUC的理解整理
    fensorflow 安装报错 DEPENDENCY ERROR
    dubbo Failed to check the status of the service com.user.service.UserService. No provider available for the service
    使用hbase遇到的问题
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
    gradle 安装
    jenkins 安装遇到的坑
  • 原文地址:https://www.cnblogs.com/xiaocaicai-cc/p/14780539.html
Copyright © 2020-2023  润新知