Jmeter integration of ant script execution jmeter

Generation after Jmeter interface test scripts are running jtl (xml) format files that do not have the readability, so we put him into html format report can be read. Ant is a powerful package compilation tools. Our aim is to use his xml files into html format.

Ready to work

1. Install ant

2. Prepare a script jmeter

With ant script execution

Create two directories under 1.jmeter

TestReport folders: html used to save the results of the report;

TestScrip folder: Save test scripts for the jmeter.

Construction principle

ant is the main tool to work according build.xml file, the default file official documents given under extras Jmeter installation directory folder. build.xml specifies the script path and reporting lines, as well as build dependency report template path and jar package path. Then the ant build.xml directory execute command jmeter script.

Sample Report:

Construction method

Modify build.xml

<?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="/usr/jmeter/apache-jmeter-3.3" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="/usr/jmeter/apache-jmeter-3.3/TestReport/test/jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="/usr/jmeter/apache-jmeter-3.3/TestReport/test/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" />
    <!-- 输出生成的报告名称和存放路径-->
    <echo message="${jmeter.result.jtlName}"/>
    <echo message="${jmeter.result.htmlName}"/>
    <echo message="${jmeter.result.html.dir}"/>

    <target name="run">
        <antcall target="test"/>
        <antcall target="report"/>
    </target>

    <!--加载jar包,解决显示时间问题-->  
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>  
    </path> 
    
    <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="/usr/jmeter/apache-jmeter-3.3/TestScrip" includes="test_token.jmx" />
            
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
    
    <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">
              <!--显示dateReport的时间--> 
              <param name="dateReport" expression="${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>
</project>

Upload and test scripts test_token.jmx build.xml file to a directory TestScrip

Ant command execution

Report to view the report catalog

 

Guess you like

Origin blog.csdn.net/datuzijean/article/details/90904471