分享

Ant转换Jmeter生成的xml格式的聚合报告

 小猪窝969 2016-03-10

前期条件:存在Jmeter聚合测试报告TestReport201510100244.jtl


    1Ant安装


                 下载ant地址


                 配置环境变量


                 


                 命令行窗口输入ant


                 


                安装成功


   2、将Jmeter保存的xml格式的聚合报告TestReport201510100244.jtl,放到相应的文件夹中


            文件夹目录结构:


            D:\jemeterTest


            


    3、编辑build.xml文件



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="all" basedir=".">
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="D:\soft\apache-jmeter-2.9" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="D:\jemeterTest\resultLog\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\jemeterTest\resultLog\html" />
    <!-- jtl文件-->
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/TestReport201510100244.jtl" />
    <!-- 生成HTML文件 -->
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/TestReport201510100244.html" />
    <target name="all">
        <antcall target="report" />
    </target>
    <target name="report">
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}">
        <!-- Jmeter自带的XSLT样式表在目录extras下面-->style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /></xslt>
    </target>
</project>

4、切换到D:\jemeterTest目录下,输入ant查看运行结果在D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件



            


            


5、打开TestReport201510100244.html文件


        


6、发现Min TimeMax Time尽然没有显示出来显示的Nan


            这个问题比较奇葩,我的初步定为思路如下


            1)首先我先看一下Jmeter自带的XSLT样式表问题


                  将TestReport201510100244.jtl文件的第二行加入


                    <?xml-stylesheet type="text/xsl" href="D:/soft/apache-jmeter-2.9/extras/jmeter-results-detail-report_21.xsl"?>


                    用浏览器打开显示正常,初步排除了XSLT样式表问题



                    


        2)编写java程序,用程序去调取jmeter-results-detail-report_21.xsl,运行,发现报错,提示


                致命错误: "无法编译样式表", 


      从网上找到了解决方案,要下载一个xalan.jar,serializer.jar包放到项目中即可解决这个问题


        3)将这两个jar包入antlib再次切换到D:\jemeterTest目录下,输入ant查看运行结果,在D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件,使用浏览器查看,OK,显示了!


            


7、拓展显示功能


        我们发现在界面上没有显示,90%line,这个性能指标项,在这里我们需要修改XSLT样式表,jmeter-results-detail-report_21.xsl增加部分内容后的文件如下:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!--.......................其他内容略....................................-->
<!-- New add 90% line -->
<xsl:variable name="allLineTime">
    <xsl:call-template name="line">
        <xsl:with-param name="nodes" select="/testResults/*/@t" />
        <xsl:with-param name="postion" select="$allPostion" />
    </xsl:call-template>
</xsl:variable>
<!--.......................其他内容略....................................-->
<!-- New add 90% line -->
<xsl:template name="line">
    <xsl:param name="nodes" select="/.." />
    <xsl:param name="postion" select="/.." />
    <xsl:choose>
        <xsl:when test="not($nodes)">LNaN</xsl:when>
        <xsl:otherwise>
            <xsl:for-each select="$nodes">
                <xsl:sort data-type="number" order="descending" />
                <xsl:if test="position() =$postion">
                    <xsl:value-of select="number(.)" />
                </xsl:if>
            </xsl:for-each>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>
<!--.......................其他内容略....................................-->



        注:90%Line逻辑(网上找的释疑)


                一组数由小到大进行排列,找到他的第90%个数(假如是10),那么这个数组中有90%的数将小于等于120


                用在性能测试的响应时间也将非常有意义,也就是90%用户响应时间不会超过12 


    1)修改build.xml文件中的内容style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" 然后切换到D:\jemeterTest目录下,输入ant查看运行结果,在 


           D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件,成功了!



             

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多