解决jmeter-results-report_21.xsl 的一个小不足(一)

来源:互联网 发布:java sha1 编辑:程序博客网 时间:2024/06/05 11:28

用过jmeter-results-report_21.xsl来转换测试结果为html的朋友们,不知道你们有没有发现,如果你的testplan中的threads 数大于1的时候,转换出来的结果会不正确,就是在的第一个request 结果会重复出现两行,本来应该是一个request一行的,但是第一个request会出现两行。给大家看一个例子:

testPlan in Jmeter

这个是我的testPlan, 只有两个request, 一个search 一个是readselectlist, 而线程数是3,用Jmeter 原有的 jmeter-results-report_21.xsl转换出来的结果如下:

你们

你们可以清楚地看到图中总共的tests=6,而下面每行加起来是9,从我的testplan 看6是正确的,而9是错误的。 错误在哪里呢?就在第一个request search那里,search 重复了。

找到这个原因后,我就看了Jmeter原来的 jmeter-results-report_21.xsl source, 然后发现问题可能出现在这里<xsl:for-each select="/testResults/*[not(@lb = preceding::*/@lb)]"> 这里的not(@lb = preceding::*/@lb),你们可以看Jmeter的测试结果.jtl文件,<testResults version="1.2">这一句里面是没有lb这个attribute的,可能也进行比较了,所以造成重复了。我推断这样之后,我就在<xsl:for-each select="/testResults/*[not(@lb = preceding::*/@lb)]">这个下面加了个if 判断,然后结果就正确了。我加的条件是这样的 <xsl:if test="preceding::*/@lb">,下面我贴出加了条件之后的效果图:

呵呵,这下结果正确了,解决一个小问题。

原创粉丝点击