Jmeter+ant生成html報告教程(4)
此教程屬於Jmeter基本操作熟練後,進行提升的專案
主要應用於介面的迴歸或者效能的簡單檢視功能。操作為先在jmeter中寫好測試計劃,儲存為jmx檔案,在cmd視窗對應路徑下執行ant命令,會完成jmx計劃的執行和生成jtl檔案,並將jtl檔案轉化為html頁面進行檢視。後續可擴充套件為接入jenkins整合,並郵件傳送。
一 、安裝ant;下載apache-ant,放到對應路徑下,然後進行環境變數配置。
下載地址:http://ant.apache.org/bindownload.cgi
(下載你需要的apache-ant版本,在這裡是要下載bin的)
二、ant環境配置;(如同jdk配置一樣簡單,新增你自己的路徑)
系統變數的CLASSPATH新增E:\Installation Pack\eclipse\apache-ant-1.9.6\lib;(新增lib絕對路徑)
使用者變數的PATH新增:E:\Installation Pack\eclipse\apache-ant-1.9.6\bin;(新增bin絕對路徑)
開啟cmd,執行 ant,提示"Buildfile:build.xml does not exist! Build failed"則配置成功,
ant命令可用。如下圖所示。
三、配置檔案環境:
(1)將JMeter所在目錄下extras子目錄裡的ant-JMeter-1.1.1.jar複製到Ant所在目錄lib子目錄之下,這樣Ant執行時才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"這個類,從而成功觸發JMeter指令碼
(2)編寫指令碼build.xml檔案(重要!!!此步驟影響後期html成功與失敗,大部分問題出自這裡,我編寫程式碼是用Notepad++,記得要用英文輸入編寫)
build.xml檔案程式碼如下:
<target name="run"> <antcall target="test" /> <antcall target="report" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 宣告要執行的指令碼。"*.jmx"指包含此目錄下的所有jmeter指令碼--> <testplans dir="G:\jmeter\JmeterTest\demo" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath"> <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> </path> <target name="report"> <tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp> <xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" > <param name="dateReport" expression="${report.datestamp}"/> </xslt> <!-- 因為上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target>
(3)檔案的位置,影響cmd是否可以成功啟動ant(資料夾名稱隨意起)
生成前:
Jmetertest:jmeter測試,存放結果記錄、指令碼
Resultlog:結果記錄,存放執行ant後生成的jtl、html報告
Script:指令碼,jm的執行指令碼
Build.xml:執行ant必須的指令碼,上面已經給出
(4)當全部檔案配置成功,cmd進入Jmetertest資料夾中,執行ant;
如圖成功生成html報告:
(5)開啟resultlogh中html資料夾中生成出的html檔案,就可以看見html報告。如圖成功生成
(6)常見問題;
問題1:配置完畢,無法生成;
解決:缺少jmeter-results-detail-report_21.xsl檔案
問題2:發現Min Time和Max Time盡然沒有顯示出來顯示的Nan
解決:下載一個xalan.jar,serializer.jar,將這兩個jar包入ant的lib包中再次切 換到jemeterTest目錄下,輸入ant檢視執行結果
問題3:就是在執行 最後生成報告的 task 時,一直報下面這個錯:
TransformerException, Content is not allowed in prolog.
解決:bin/jmeter.properties檔案內容,儲存
jmeter.save.saveservice.output_format=xml