前期条件:存在Jmeter聚合测试报告TestReport201510100244.jtlhtml
一、Ant安装java
下载ant地址node
配置环境变量apache
命令行窗口输入ant数组
安装成功浏览器
二、将Jmeter保存的xml格式的聚合报告TestReport201510100244.jtl,放到相应的文件夹中微信
文件夹目录结构:post
D:\jemeterTest性能
三、编辑build.xml文件测试
<?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>
四、切换到D:\jemeterTest目录下,输入ant查看运行结果,在D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件
五、打开TestReport201510100244.html文件
六、发现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,显示了!
七、拓展显示功能
咱们发如今界面上没有显示,90%line,这个性能指标项,在这里咱们须要修改XSLT样式表,jmeter-results-detail-report_21.xsl增长部份内容后的文件以下:
<!--.......................其余内容略....................................--> <!-- 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文件,成功了!
欢迎你们关注微信公众号与QQ群进行交流