前期条件:存在Jmeter聚合测试报告TestReport201510100244.jtl
1、Ant安装
下载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 Time和Max 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包入ant的lib包中再次切换到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文件,成功了!

|