Jmeter Html 報告中添加90% line time

首先上效果圖:
html

其次明白幾個原理:node

  1. 90% Line的意思是:一組數由小到大進行排列,找到它的第90%個數;
  2. Jmeter html報告生成是使用xxx.jtl文件經過xsl模板生成的,所以要在html報告中顯示90% line,就須要修改xsl模板文件(jmeter-results-detail-report_21.xsl)

最後上步驟:
一、在jmeter-results-detail-report_21.xsl添加xsl template,能夠放在max template模板下面,以下spa

<!-- 90% line time -->
<xsl:template name="lineTime">
        <xsl:param name="nodes" select="/.." />
    <xsl:choose>
        <xsl:when test="not($nodes)">NaN</xsl:when>
        <xsl:otherwise>
            <xsl:for-each select="$nodes">
                <xsl:sort data-type="number" />
                <!-- last() 返回當前上下文中的最後一個節點位置數 -->
                <!-- floor(number) 返回不大於number的最大整數 -->
                <!-- position() 返回當前節點位置的數字 -->
                <!-- number(object) 使對象轉換成數字 -->
                <xsl:if test="position() = floor(last()*0.9)">
                    <xsl:value-of select="number(.)" />
                </xsl:if>
            </xsl:for-each>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

二、在Summary中添加90% Linecode

<xsl:template name="summary">
    <h2>Summary</h2>
    <table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
        <tr valign="top">
            <th># Samples</th>
            ...省略N行,添加總結框中的90% Line標題...
            <th>90% Line</th>
        </tr>
            ...省略N行,添加一個xsl變量...
        <!-- New add 90% line -->
        <xsl:variable name="allLineTime">
            <xsl:call-template name="lineTime">
                <xsl:with-param name="nodes" select="/testResults/*/@t" />
            </xsl:call-template>
        </xsl:variable>

            ...省略N行,在表格中顯示數字...
            <td align="center">
                <xsl:call-template name="display-time">
                    <xsl:with-param name="value" select="$allLineTime" />
                </xsl:call-template>
            </td>

三、在pagelist中添加90% Linehtm

<xsl:template name="pagelist">
    <h2>Pages</h2>
    <table align="center" class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
                <tr valign="top">
                    <th>URL</th>
                ...省略N行,添加Pages中的90% Line標題...
                    <th>90% Line</th>
                <th></th>
                ...省略N行,添加一個xsl變量...
                <!-- new add 90% line time -->
                <xsl:variable name="nintyTime">
                    <xsl:call-template name="lineTime">
                        <xsl:with-param name="nodes" select="../*[@lb = current()/@lb]/@t" />
                    </xsl:call-template>
                </xsl:variable>
                ...在表格中顯示數字...
                <td align="center">
                    <xsl:call-template name="display-time">
                        <xsl:with-param name="value" select="$nintyTime" />
                    </xsl:call-template>
                </td>
相關文章
相關標籤/搜索