在JMeter测试运行期间,如何按异常/断言将报告中的响应分组

时间:2019-02-15 20:58:44

标签: jmeter performance-testing load-testing

在测试期间,我从相同的请求中获得了三种类型的异常(或者也可能来自不同的异常)。
我想对它们进行排序并以任何形式对其进行分组,以查看每种类型的异常有多少种。 我可以为响应中的每种异常添加响应断言,但是如何将它们归类到报告中呢? 在理想情况下,我希望获得:

  • DuplicateKeyException-22%的采样器
  • NullPointerException-5%的采样器
  • WorstEverException-10%的采样器

有什么想法怎么做?

1 个答案:

答案 0 :(得分:2)

我认为至少有两种方式:

  1. 使用Sample Variables属性,如:

    • 使用相关的Post-Processor从响应中提取Exception类型,并将其存储到名为Exception的JMeter变量中
    • 将下一行添加到 user.properties 文件:

      sample_variables=Exception
      
    • 下次您以命令行非GUI模式运行测试时,例如:

      jmeter -n -t test.jmx -l result.csv
      

      您将看到一个名为Exception的附加列,具有异常的值。现在您应该可以使用LibreOffice CalcMicrosoft Excel来计算特定异常的百分比

  2. 您可以使用JSR223 Listener来根据发生的异常重命名采样器,相关代码如下:

    if (!prev.isSuccessful()) {
        prev.setSampleLabel((prev.getResponseDataAsString() =~ "(\\w+)Exception")[0][1] as String)
    }
    

    其中prev是父级SampleResult的简写

    上面的代码将从响应中提取异常类型(如果采样器失败并且存在异常类型),并根据异常类型重命名采样器。

    您可以在Apache Groovy - Why and How You Should Use It文章

  3. 中找到有关Groovy脚本的更多信息。