zoukankan      html  css  js  c++  java
  • Jmeter + Jenkins + Ant 集成

    环境准备

    1. 安装jenkins,并安装插件ant

      java环境与jdk的安装

      jmeter的安装及脚本准备

    2. ant的安装:

      下载 Ant 压缩包并解压

      配置环境变量,在环境变量中新建一个系统变量,输入变量名ANT_HOME,变量值为ANT安装路径:如D:Antapache-ant-1.9.14

      path环境变量中添加:%ANT_HOME%in;

    3. 在jenkins中设置全局变量:

      在ant选项中name栏去一个名称,一般为ant

      默认勾选上了Install automatically,需要去除勾选

      ANT_HOME中输入环境变量添加的值:例:D:Antapache-ant-1.9.14

      然后保存

    4. 进入到jmeterin,打开 jmeter.properties 文件

      修改jmeter.save.saveservice.output_format=xml(便于后期邮件的发送)

    5. 将 jmeter 下的 extras 中的 ant-jmeter-1.1.1.jar包复制到ant安装路径的lib目录下

      验证:在 jmeter 的 extras 文件夹中 cmd ,输入ant.bat -file build.xml -Dtest=Test

      查看apache-jmeter-3.extras目录下是否出现Test.jtl、Test.html文件,若有,则构建成功

    6. jenkins中创建一个自由任务:

      在build中add build step 添加一个 invoke Ant

      在Ant Version 中下拉选择在全局配置中创建的(上面创建的ANT,这里选择ANT)

      点击Advanced,Build File 中填入build.xml文件位置,例:D:Jmeterapache-jmeter-5.2.1extrasuild.xml

    7. build.xml文件配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <!--name名称可自己定义,表示工程名称,default表示默认的情况下为all,从20行代码可以看出,又包含test,report,mail,basedir表示当前目录-->
    <project name="接口性能监控" default="all" basedir=".">
     <tstamp>
            <!--当前时间戳-->
            <format property="time" pattern="yyyyMMddhhmm" />
     </tstamp>
    	<property name="encoding" value="UTF-8" />
        <!-- 需要改成自己本地的 Jmeter 目录-->
        <property name="jmeter.home" value="E:202002-03jmeter8期apache-jmeter-5.1.1" />
        <!--value为报告名称,可自行修改-->
        <property name="report.title" value="易捷支付性能监控"/>
        <!-- jmeter生成jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="${jmeter.home}worklogsjtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="${jmeter.home}worklogshtml" />
        <!-- 生成的报告的前缀-->
        <property name="ReportName" value="PerformReport" />
        <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}inscript" includes="jpgc_design.jmx" />
    			<testplans dir="${jmeter.home}inscript" includes="jpgc_design2.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>
            <!-- meter-results-detail-report_21.xsl为报告模板,可自定义,提供jmeter-results-detail-report_21.xsl,
            jmeter-results-report_21.xsl选择 -->
            <xslt
                  classpathref="xslt.classpath"
                  force="true"
                  in="${jmeter.result.jtlName}"
                  out="${jmeter.result.htmlName}"
    
    			  style="${jmeter.home}extrasjmeter-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>
        <!--  发送方邮箱,需开通SMTP服务  -->
    	<property name="mail_from" value="d@163.com" />
        <!-- value填写的是授权码  -->
    	<property name="password" value="dedasdafewrdf" />
    	<!--mail_to:发送列表,value表示接收方邮箱,多个之间逗号间隔  -->
    
    	<property name="mail_to" value="20408960@qq.com" />
        <!--  端口信息  -->
    	<property name="mailport" value="25" />
    	<!--邮箱需要开通smtp服务-->
    	<property name="mailhost" value="smtp.163.com" />
    
    	<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>
    

    之后就可以在jenkins上构建任务。

  • 相关阅读:
    Silverlight 皮肤的使用(二)
    EF Core – Temporal Table 时态表
    SQL Server – Schema
    SQL Server – Temporal Table 时态表
    EF Core – QueryFilter & Interception
    SQL Server – Work with JSON
    EF Core – Soft Delete 实现
    C# – 10.0
    ASP.NET Core – 读写 Request / Response
    ASP.NET Core – Middleware
  • 原文地址:https://www.cnblogs.com/zhouxiongjie/p/12597904.html
Copyright © 2011-2022 走看看