使用Jmeter測試完后並不能直接生成html報告,而是jtl報告。這里我們可以用xsltproc來解決。
xsltproc是由DanielVeillard用來C語言編寫的是一個快速XSLT引擎,
它可以將通過XSL層疊樣式表把XML轉換為相應格式的文件,
比如:HTML,XHTML,PDF...
XSL指擴展樣式表語言(EXtensible Stylesheet Language),
把XML轉換為HTML用的就是xls編寫的樣式表,
所以如果要擴展這個報告,首先要對xls熟悉,
才能更改和擴展樣式表。
可以在http://www.w3school.com.cn/xsl/index.asp這里進行此語言的學習。
IDEA+Jmeter測試環境搭建
- 修改jmeter.properties配置文件
jmeter.save.saveservice.output_format=xml
- 下載xsltproc文件並解壓,可執行文件路徑加到環境變量中
下載路徑:鏈接:https:pan.baidu.com/s/1qZpoLwo 密碼:ky88
參照此文:http:www.crifan.com/files/doc/docbook/docbook_dev_note/release/webhelp/download_xsltproc_win.html
- 復制報告模板文件
將Jmeter安裝目錄\extras下的jmeter-results-detail-report_21.xsl和
jmeter-results-report_21.xsl模板文件復制到
src\test\resources文件夾中,jmeter文件夾下面放.jmx文件,
如果報告中缺失展開圖標,一並復制collapse.png和expand.png到resources文件夾中 - 修改POM文件,有二個方案,方案一:在pom.xml里加入xsltproc執行插件,可以直接生成html報告
<plugin> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>2.1.0</version> <ignoreResultFailures>true</ignoreResultFailures> <testResultsTimestamp>false</testResultsTimestamp> <testFilesIncluded> <jMeterTestFile>testdemo.jmx</jMeterTestFile> </testFilesIncluded> <executions> <execution> <id>jmeter-tests</id> <phase>verify</phase> <goals> <goal>jmeter</goal> </goals> </execution> </executions> </plugin>
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <executions> <execution> <phase>verify</phase> <goals> <goal>exec</goal> </goals> </execution> </executions> <configuration> <executable>xsltproc</executable> <arguments> <argument>-o</argument> <argument>target/jmeter/results/testdemo.html</argument>
<argument>src/test/resources/jmeter-results-detail-report_21.xsl</argument>
<argument>target/jmeter/results/testdemo.jtl</argument>
</arguments> </configuration> </plugin>方案二:如果需要Jenkins持續集成,且服務器是Linux,xsltproc找不到路徑的話,去掉exec-maven-plugin,在Jenkins里用shell命令來替換,
詳見《Jenkins+Maven+Jmeter接口自動化持續集成測試》)。那么IDEA里面去掉exec-maven-plugin后,如何轉化jtl到html報告呢,可以在IDEA命令行輸入以下命令:
xsltproc -o target/jmeter/results/testdemo.html src/test/resources/jmeter-results-detail-report_21.xsl target/jmeter/results/testdemo.jtl
-
查看html報告
接下去就是跟Jenkins集成,做持續集成測試,將在下一篇做詳細介紹,盡請期待!