前期條件:存在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羣進行交流