Jmeter + Jenkins + Ant integration

Preparing the Environment

  1. Install jenkins, and install the plug-ant

    java jdk environment and installation

    jmeter installation and script ready

  2. ant installation:

    Download Ant archive and extract

    Configure the environment variables, a new variable in the system environment variable, the ANT_HOME enter the variable name, the value of the variable installation path ANT: as D: \ Ant \ apache-ant-1.9.14

    path environment variable to add:% ANT_HOME% \ bin;

  3. Set in a global variable in jenkins:

    In ant options bar to name a name, usually ant

    Checked by default on the Install automatically, removing the need to check the

    ANT_HOME value input environment variable added: Example: D: \ Ant \ apache-ant-1.9.14

    Then save

  4. Into jmeter \ bin, open the file jmeter.properties

    Modify jmeter.save.saveservice.output_format = xml (easy to post the message transmission)

  5. Copy extras jmeter under the ant-jmeter-1.1.1.jar package to the installation lib directory path ant

    Verification: In the extras jmeter cmd file folder input ant.bat -file build.xml -Dtest = Test

    View \ apache-jmeter-3. \ Test.jtl appears under extras directory, Test.html file, and if so, to build success

  6. jenkins create a free task:

    Add a invoke Ant in the build add build step

    In Ant Version dropdown select (ANT created above, here select ANT) was created in Global Configuration

    Click Advanced, Build File fill build.xml file location, for example: D: \ Jmeter \ apache-jmeter-5.2.1 \ extras \ build.xml

  7. build.xml configuration file:

<?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-03\jmeter8期\apache-jmeter-5.1.1\" />
    <!--value为报告名称,可自行修改-->
    <property name="report.title" value="易捷支付性能监控"/>
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="${jmeter.home}\worklogs\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="${jmeter.home}\worklogs\html" />
    <!-- 生成的报告的前缀-->
    <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}\bin\script" includes="jpgc_design.jmx" />
			<testplans dir="${jmeter.home}\bin\script" 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}\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>
    <!--  发送方邮箱,需开通SMTP服务  -->
	<property name="mail_from" value="[email protected]" />
    <!-- value填写的是授权码  -->
	<property name="password" value="dedasdafewrdf" />
	<!--mail_to:发送列表,value表示接收方邮箱,多个之间逗号间隔  -->

	<property name="mail_to" value="[email protected]" />
    <!--  端口信息  -->
	<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>

Then you can build tasks on jenkins.

Guess you like

Origin www.cnblogs.com/zhouxiongjie/p/12597904.html