利用xsltproc转换jtl报告到html报告
使用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安全策略CSP设置禁止了,只需要到Jenkins系统管理à脚本命令行,执行以下Groovy命令,然后点击运行。配置完成后,重新构建原有项目,HTML页面即可正常显示。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
但是重启后就失效了。这里就需要2个插件:
(1)Startup Trigger 插件:可实现在Jenkins节点(master/slave)启动时触发构建
(2)Groovy plugin: 可实现直接执行Groovy代码
解决步骤如下:
1、Jenkins中新建一个Job,该Job专用Jenkins启动时执行的配置命令。
2、在“构建触发器”模块,选择“Build when job nodes start”选项。
3、在“构建”模块,选择“Execute system Groovy ”,执行如下Groovy命令:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
立即构建此Job,返回原项目重新构建,再次访问HTML页面,问题解决。
接下去就是跟Jenkins集成,做持续集成测试,将在下一篇做详细介绍,尽请期待!
作者:大道QA团队*大东哥
版权所有,转载请注明出处:http://www.cnblogs.com/greattao