前期條件:存在Jmeter聚合測試報告TestReport201510100244.jtl
1、Ant安裝
下載ant地址
配置環(huán)境變量
命令行窗口輸入ant
安裝成功
2、將Jmeter保存的xml格式的聚合報告TestReport201510100244.jtl,放到相應(yīng)的文件夾中
文件夾目錄結(jié)構(gòu):
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格式的結(jié)果報告的路徑--> < property name = "jmeter.result.jtl.dir" value = "D:\jemeterTest\resultLog\jtl" /> <!-- jmeter生成html格式的結(jié)果報告的路徑--> < 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查看運(yùn)行結(jié)果,在D:\jemeterTest\resultLog\html目錄下生成TestReport201510100244.html文件
5、打開TestReport201510100244.html文件
6、發(fā)現(xiàn)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程序,用程序去調(diào)取jmeter-results-detail-report_21.xsl,運(yùn)行,發(fā)現(xiàn)報錯,提示
致命錯誤: "無法編譯樣式表",
從網(wǎng)上找到了解決方案,要下載一個xalan.jar,serializer.jar包放到項目中即可解決這個問題
3)將這兩個jar包入ant的lib包中再次切換到D:\jemeterTest目錄下,輸入ant查看運(yùn)行結(jié)果,在D:\jemeterTest\resultLog\html目錄下生成TestReport201510100244.html文件,使用瀏覽器查看,OK,顯示了!
7、拓展顯示功能
我們發(fā)現(xiàn)在界面上沒有顯示,90%line,這個性能指標(biāo)項,在這里我們需要修改XSLT樣式表,jmeter-results-detail-report_21.xsl增加部分內(nèi)容后的文件如下:
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 | <!--.......................其他內(nèi)容略....................................--> <!-- 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 > <!--.......................其他內(nèi)容略....................................--> <!-- 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 > <!--.......................其他內(nèi)容略....................................--> |
注:90%Line邏輯(網(wǎng)上找的釋疑)
一組數(shù)由小到大進(jìn)行排列,找到他的第90%個數(shù)(假如是10),那么這個數(shù)組中有90%的數(shù)將小于等于120。
用在性能測試的響應(yīng)時間也將非常有意義,也就是90%用戶響應(yīng)時間不會超過12 秒
1)修改build.xml文件中的內(nèi)容style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" 然后切換到D:\jemeterTest目錄下,輸入ant查看運(yùn)行結(jié)果,在
D:\jemeterTest\resultLog\html目錄下生成TestReport201510100244.html文件,成功了!