如何通过Jmeter报告获取404响应代码?

时间:2018-08-03 09:45:28

标签: jmeter httpresponse jmeter-plugins web-api-testing

场景:

我正在使用Jmeter进行API测试。我在此处添加了针对404的响应代码断言,即我期望404。

因此,当我期望它时,它应该是绿色,但它是红色(200时显示为绿色)。我该如何解决?

我正在使用Jmeter 3.x on windows,而侦听器是JMeter View Results in table

2 个答案:

答案 0 :(得分:1)

您可以使用JSR223断言(或任何其他可编程断言或后处理器)覆盖采样器结果:

  1. 在响应代码为404时要传递的采样器下添加JSR223断言:

enter image description here

  1. 设置断言,以使其在响应代码为404时通过,并且在这种情况下,还应修改采样器的结果以使其成功。在所有其他情况下,请将断言设置为失败,并且不要修改采样器状态:

    bool IsMessageUpper(string input)
    {
        if (input.Length.Equals(5 <= 10) && (input.Take(7).All(c => char.IsLetter(c) && char.IsUpper(c))))
        {
             return true;
        }
        else
        {
             return false;
        }
    }
    

此代码仅覆盖状态,但是您可以更改SampleResultAssertionResult的任何其他字段

示例:

当响应代码为404时,采样器和断言将成功:

enter image description here

当响应代码为200时,采样器最初会成功,但会因断言而失败:

enter image description here

答案 1 :(得分:0)

这是预期的行为。

在下图中,第一个请求是404,响应断言是404。因此,HTTP采样器失败了,因为它是404,但是断言通过了,正如您看到的那样,第一个HTTP采样器中没有扩展符号。

在第二个采样器中,它给出200,但响应断言是404。因此,HTTP采样器由于断言而失败。

如果未找到,断言将使HTTP采样器失败,但如果是404响应且没有任何其他设置,则断言不会使其变为绿色。

enter image description here

现在,针对此问题的解决方案,您可以使用“忽略状态”复选框来传递采样器,即使采样器是404并且断言也是404,如下所示:-

enter image description here

enter image description here