jmeter+maven+jenkins报告优化(二):解决date not defined

问题:在Jenkins生成的报告没有显示日期:Date report: date not defined,

网上的资料都是ant的,试了下好像都不行,看起来也挺麻烦。

解决方案:因为我的报告是用xsltproc生成的,网上查了下资料,发现xsltproc可以插入当前日期并传参给XSL内部。

参考如下:

<xsl:param name="current-date" />

例如,在bash脚本中,使用:

xsltproc --stringparam current-date `date +%Y-%m-%d` -o output.html path-to.xsl path-to.xml

然后,可以在xsl中使用:

<xsl:value-of select="$current-date"/>


 

这就好办了,修改测试报告模板jmeter-results-detail-report_21.xsl:

(1)修改param name值:<xsl:param name="current-date"

<xsl:param    name="showData" select="'y'"/>
<xsl:param    name="titleReport" select="'Load Test Results'"/>
<xsl:param    name="current-date" select="'date not defined'"/>

(2)修改value值:<xsl:value-of select="$current-date"/>

<xsl:template name="pageHeader">
	<h1><xsl:value-of select="$titleReport" /></h1>
	<table width="100%">
		<tr>
			<td align="left">Date report: <xsl:value-of select="$current-date" /></td>
			<td align="right">Designed for use with <a href="http://jmeter.apache.org/">JMeter</a> and <a href="http://ant.apache.org">Ant</a>.</td>
		</tr>
	</table>
	<hr size="1" />
</xsl:template>

(3)修改Jenkins配置,添加shell命令:(PS:记得空格要转码,调试了好久~哭)

具体命令如下:

/usr/bin/xsltproc --stringparam current-date "`date +%Y-%m-%d\ %H:%M:%S`" -o $WORKSPACE/target/jmeter/results/testdemo.html $WORKSPACE/src/test/resources/jmeter-results-detail-report_21.xsl $WORKSPACE/target/jmeter/results/testdemo.jtl

 

最终结果如下:时间出来了(真香~)

 

posted @ 2020-02-21 21:16  大道QA团队  阅读(677)  评论(0编辑  收藏  举报