|
前期條件:存在Jmeter聚合測(cè)試報(bào)告TestReport201510100244.jtl
1、Ant安裝
下載ant地址
配置環(huán)境變量

命令行窗口輸入ant

安裝成功
2、將Jmeter保存的xml格式的聚合報(bào)告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é)果報(bào)告的路徑-->
<property name="jmeter.result.jtl.dir" value="D:\jemeterTest\resultLog\jtl" />
<!-- jmeter生成html格式的結(jié)果報(bào)告的路徑-->
<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、打開(kāi)TestReport201510100244.html文件

6、發(fā)現(xiàn)Min Time和Max Time盡然沒(méi)有顯示出來(lái)顯示的Nan
這個(gè)問(wèn)題比較奇葩,我的初步定為思路如下
1)首先我先看一下Jmeter自帶的XSLT樣式表問(wèn)題
將TestReport201510100244.jtl文件的第二行加入
<?xml-stylesheet type="text/xsl" href="D:/soft/apache-jmeter-2.9/extras/jmeter-results-detail-report_21.xsl"?>
用瀏覽器打開(kāi)顯示正常,初步排除了XSLT樣式表問(wèn)題

2)編寫java程序,用程序去調(diào)取jmeter-results-detail-report_21.xsl,運(yùn)行,發(fā)現(xiàn)報(bào)錯(cuò),提示
致命錯(cuò)誤: "無(wú)法編譯樣式表",
從網(wǎng)上找到了解決方案,要下載一個(gè)xalan.jar,serializer.jar包放到項(xiàng)目中即可解決這個(gè)問(wèn)題
3)將這兩個(gè)jar包入ant的lib包中再次切換到D:\jemeterTest目錄下,輸入ant查看運(yùn)行結(jié)果,在D:\jemeterTest\resultLog\html目錄下生成TestReport201510100244.html文件,使用瀏覽器查看,OK,顯示了!

7、拓展顯示功能
我們發(fā)現(xiàn)在界面上沒(méi)有顯示,90%line,這個(gè)性能指標(biāo)項(xiàng),在這里我們需要修改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%個(gè)數(shù)(假如是10),那么這個(gè)數(shù)組中有90%的數(shù)將小于等于120。
用在性能測(cè)試的響應(yīng)時(shí)間也將非常有意義,也就是90%用戶響應(yīng)時(shí)間不會(huì)超過(guò)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文件,成功了!

|