日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决jmeter测试报告不显示后面的断言错误失败信息

發(fā)布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决jmeter测试报告不显示后面的断言错误失败信息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、問題描述

使用jmeter進行自動測試了兩個接口,該接口測試有4個斷言,其中有3個斷言是失敗的,并且有相應(yīng)的斷言錯誤信息:

  • 請求失敗11111111111111
  • 請求失敗222222222222
  • 請求失敗333333333333
  • ?通過jmeter命令行ant生成的測試報告如下:

    【jmeter通過ant自動生成測試報告參見:https://www.cnblogs.com/liyuanhong/articles/9208276.html】

    可以看到falture Message并沒有將錯誤信息展示出來。

    由于無法看到后面報錯的結(jié)果,所以非常的老火,解決方法如下(通過分析ant編譯的源代碼)

    二、解決思路

    1、在jmeter的extras找到j(luò)meter build.xml文件,找到這里,該段代碼主要定義了jmeter是如何生成html報告的:

    <target name="xslt-report" depends="_message_xalan"><tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp><xsltclasspathref="xslt.classpath"force="true"in="${testpath}/${test}.jtl"out="${testpath}/${test}.html"style="${basedir}/jmeter-results-detail-report${style_version}.xsl"><param name="showData" expression="${show-data}"/><param name="titleReport" expression="${report.title}"/><param name="dateReport" expression="${report.datestamp}"/></xslt></target>

    在這里簡單說一下jmeter生成html測試報告的原理:jmter通過ant 的build.xml文件,首先執(zhí)行 xxx.jmx文件生成一個xxx.jtl的測試報告,然后再通過java的xalan庫將xxx.jtl文件轉(zhuǎn)換為一個xxx.html的可視化測試報告;而轉(zhuǎn)換的規(guī)則,則定義在以上style指定的模板文件里面。

    這里可以查看我們生成的xxx.jtl文件:

    找到生成的報告內(nèi)容:

    通過以上的xxx.jtl測試報告,我們可以看到,三個斷言的信息都在報告里面并沒有漏掉,而可視化的html文件中沒有顯示,說明,在xxx.jtl文件轉(zhuǎn)換為xxx.html文件的過程中出現(xiàn)了問題。

    查看style="${basedir}/jmeter-results-detail-report${style_version}.xsl">這個定義的模板文件:

    打開該文件,找到:

    <xsl:for-each select="/testResults/*[@lb = current()/@lb][attribute::s='false']"><tr><td><xsl:value-of select="@rc | @rs" /> - <xsl:value-of select="@rm" /></td><td><xsl:value-of select="assertionResult/failureMessage" /></td><xsl:if test="$showData = 'y'"><td><xsl:value-of select="./binary" /></td></xsl:if></tr> </xsl:for-each>

    從以上代碼我們可以看到,在生成斷言錯誤信息的時候并沒有使用fgor-each來進行遍歷,所以,如果第一個斷言沒有任何信息,他將不會展示任何的斷言結(jié)果,所以我們將以上代碼修改如下:

    <xsl:for-each select="/testResults/*[@lb = current()/@lb][attribute::s='false']"><tr><td><xsl:value-of select="@rc | @rs" /> - <xsl:value-of select="@rm" /></td><td><xsl:for-each select="assertionResult"><p><xsl:value-of select="failureMessage" /></p></xsl:for-each></td><xsl:if test="$showData = 'y'"><td><xsl:value-of select="./binary" /></td></xsl:if></tr> </xsl:for-each>

    翟上面的代碼中,我們加了一個for-each來遍歷斷言信息,并將斷言信息放到<p>元素里面,最后,我們再執(zhí)行,生成的html測試報告就可以正常顯示所有的的斷言錯誤信息了:

    總結(jié)

    以上是生活随笔為你收集整理的解决jmeter测试报告不显示后面的断言错误失败信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。