zoukankan      html  css  js  c++  java
  • ant+jmeter 自动生成测试报告

    1,把Jmeter根目录/extras 下的ant-jmeter-xxx.jar拷贝到ant根目录/lib下

    2, 修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml  

    3,build.xml内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project name="ant-jmeter-test" default="all" basedir=".">
        <tstamp>
            <format property="time" pattern="yyyyMMddHHmm" />
        </tstamp>
        <!-- 需要改成自己本地的 Jmeter 目录-->
        <property name="jmeter.home" value="D:/apache-jmeter-3.0" />
        <!-- jmeter生成jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="D:/apache-jmeter-3.0/reports/jtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="D:/apache-jmeter-3.0/reports/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="all">
            <antcall target="test"/>
            <antcall target="report"/>
        </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="D:workspacejmeter" includes="xx.jmx" />
            </jmeter>
        </target>
            
        <target name="report">
            <xslt in="${jmeter.result.jtlName}"
                  out="${jmeter.result.htmlName}"
                  style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
            
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        </target>
    </project>

    4,在build.xml同级目录创建一个build.bat文件,文件内容为ant,然后双击build.bat,jmeter脚本即可自动运行并在指定位置生成对应测试报告

    5,通过步骤4我们发现生成的测试报告存在些许瑕疵,如:Min Time和Max Time的值为NaN,下面我们在处理这部分问题。粗暴写,直接上代码,把build.xml改成如下内容即可。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project name="ant-jmeter-test" default="all" basedir=".">
        <tstamp>
            <format property="time" pattern="yyyyMMddHHmm" />
        </tstamp>
        <!-- 需要改成自己本地的 Jmeter 目录-->
        <property name="jmeter.home" value="D:/apache-jmeter-3.0" />
        <property name="report.title" value="ITest"/>
        
        <!-- jmeter生成jtl格式的结果报告的路径-->
        <property name="jmeter.result.jtl.dir" value="D:/apache-jmeter-3.0/reports/jtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="D:/apache-jmeter-3.0/reports/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="all">
            <antcall target="test"/>
            <antcall target="report"/>
        </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="D:workspacejmeter" includes="查询派送中订单流程.jmx" />
            </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="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>
  • 相关阅读:
    html的基本框架和常用标签
    防火墙
    Zenmap
    每日一招:熟练掌握变盘方向
    每日一招:赚钱最快的选股策略
    操盘策略:黄金做单时间
    每日一招:坚守六大方式选出优质股
    如何保卫你的牛市胜利果实?
    名家看后市:长阴破位不必慌
    每日一招:补仓需遵守的技巧
  • 原文地址:https://www.cnblogs.com/changshuo/p/5852820.html
Copyright © 2011-2022 走看看