jmeter+ant+jenkins+mac報告優化(一):解決Min Time和Max Time顯示NaN

  • 1、在上篇博客中生成的報告有兩個問題:

    1.date not definedhtml

    2.Min Time和Max Time顯示成了NaNexpress

 

  • 2、Jmeter+Ant報告生成原理:

  一、在Jmeter的extras目錄下,爲咱們提供了一個現成的實例,咱們只須要在該目錄下執行ant命令就能夠生成一個數據文件Test.jtl和一個報告Test.htmlapache

  二、Jmeter的extras目錄下的build.xml文件的配置。測試

 

  • 3、解決問題:優化

    一、找到extras目錄下build.xml文件內容的以下部分:它的做用就是把生成的.jtl數據文件轉換爲.html格式的報告ui

    具體屬性的含義:spa

    • in:生成的.jtl文件的路徑
    • out:生成的.html文件的路徑
    • style:從.jtl轉換成.html所使用的樣式,這些文件也在extras目錄下,這個是最重要的部分,若是咱們想定製報告能夠自行定義這個文件或者從網上找一些合適的文件。
    • param:參數,這幾個參數能夠在style中使用,下面會講到。
    • path:添加jar包的路徑,在下面的target中有引用到(下面第1行)。
 1   <path id="xslt.classpath">   //jar路徑
 2          <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
 3          <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
 4   </path>
 5   //把生成的.jtl文件轉換成.html格式的報告
 6   <target name="report">
 7           <xslt 
 8               classpathref="xslt.classpath" 9               force="true" 10              in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
11              <param name="showData" expression="${show-data}"/>
12              <param name="titleReport" expression="${ReportName}${time}"/>
13              <param name="dateReport" expression="${ReportName}${time}"/>
14          </xslt>
15  </target>

 

      二、經過上面的分析,style 文件是整成報告轉換的關鍵,那咱們就打開jmeter-results-detail-report_21.xsl這個文件看看,找到以下幾行,這裏也定義了三個參數跟build.xml文件中同樣,由此可猜想,咱們只要在build.xml文件中定義dateReport這個參數和值,在style中就能夠按以下方式使用,通過測試證實猜想是正確的,那麼第一個問題就解決了:3d

1 <xsl:param    name="showData" select="'n'"/>
2 <xsl:param    name="titleReport" select="'Load Test Results'"/>
3 <xsl:param    name="dateReport" select="'date not defined'"/>

      三、對於第二個問題,其實把第1步中的代碼複製到咱們本身的build.xml文件中後,能夠一併解決這兩個問題。解決第二個老是的關鍵代碼是第8行和第9行:code

  classpathref="xslt.classpath"orm

  force="true"

      而第8行又引用了第1~4行

      四、到此,兩個問題都解決了,最終修改後的build.xml文件以下,標黃的內容是解決時添加的代碼 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <project name="JmeterTest" default="all" basedir=".">
 3     <tstamp>
 4         <format property="time" pattern="yyyyMMddhhmm" />
 5     </tstamp>
 6     <!-- 須要改爲本身本地的 Jmeter 目錄-->
 7     <property name="jmeter.home" value="/Applications/apache-jmeter-3.0" />
 8     <!-- jmeter生成jtl格式的結果報告的路徑-->
 9     <property name="jmeter.result.jtl.dir" value="report/jtl" />
10     <!-- jmeter生成html格式的結果報告的路徑-->
11     <property name="jmeter.result.html.dir" value="report/html" />
12     <!-- 生成的報告的前綴 -->
13     <property name="ReportName" value="TestReport" />
14     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
15     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
16     <!-- 接收測試報告的郵箱 -->
17     <property name="mail_to" value="chengqian@souche.com" />
18     <!-- 電腦地址 -->
19     <property name="ComputerName" value="chichi" />
20     <target name="all">
21         <antcall target="login" />
22         <antcall target="report" />
23     </target>
24     <target name="login">
25         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
26         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
27             <!-- 聲明要運行的腳本。"*.jmx"指包含此目錄下的全部jmeter腳本 -->
28             <testplans dir="/Applications/apache-ant-1.9.7/" includes="11.jmx" />
29             <property name="jmeter.save.saveservice.output_format" value="xml" />
30         </jmeter>
31     </target>
32     
33     <path id="xslt.classpath">
34       <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
35       <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
36     </path>
37     
38     <target name="report">
39         <xslt 
40             classpathref="xslt.classpath" 41             force="true" 42            in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
43             <param name="showData" expression="${show-data}"/>
44             <param name="titleReport" expression="${ReportName}${time}"/>
45             <param name="dateReport" expression="${ReportName}${time}"/>
46         </xslt>
47         <!-- 由於上面生成報告的時候,不會將相關的圖片也一塊兒拷貝至目標目錄,因此,須要手動拷貝 -->
48         <copy todir="${jmeter.result.html.dir}">
49             <fileset dir="${jmeter.home}/extras">
50                 <include name="collapse.png" />
51                 <include name="expand.png" />
52             </fileset>
53         </copy>
54     </target>
55     <!-- 發送郵件 -->
56 </project>

5.優化後的報告以下:

相關文章
相關標籤/搜索