jmeter+ant生成测试报告,怎样使用xslt2.0的模板

各位大神,请教自己写了个xslt2.0的报告模板,在xmlspy中调试可以正常生成报告。模板放到jmeter下面调用,报错如下

JMeter生成的原始测试报告是一个XML文件,如果想自定义报告样式,可以使用XSLT模板对其进行转换。这里介绍使用XSLT 2.0模板来生成自定义的JMeter测试报告:

  1. 安装XSLT处理器,如Saxon HE。这是一款开源的XSLT处理工具,可以在命令行或Java代码中调用。
  2. 编写XSLT 2.0模板文件,如report.xslt:
xml
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <!-- TODO: 添加你的模板逻辑 -->
</xsl:stylesheet> 

  1. 在JMeter的ant构建文件(如build.xml)中添加对XSLT模板的调用:
xml
<target name="report">
  <xslt in="report.jmx" style="report.xslt" out="report.html"/>
</target>

这会使用Saxon HE调用report.xslt模板,将report.jmx转换为report.html。
4. 在report.xslt模板中可以包含报告标题、概览、图表等元素。例如:

xml
<html>
<head><title>Test Report</title></head>
<body>
<h1>性能测试报告</h1>
<p>概览: <xsl:value-of select="testresults/stat"/> </p>  

<!-- 添加图表 -->
<xsl:for-each select="testresults/httpSample">  
  <div>
    <img src="{@graph}">    
  </div>
</xsl:for-each>

<!-- 添加详细响应时间 -->   
<table border="1">  
  <xsl:for-each select="testresults/httpSample">  
    <tr>
      <td><xsl:value-of select="@lb"/></td>  
      <td><xsl:value-of select="@t"/></td>
    </tr>
  </xsl:for-each>
</table>
</body>
</html>