代码之家  ›  专栏  ›  技术社区  ›  paul

如何获取404响应代码的Jmeter报告中的pass?

  •  1
  • paul  · 技术社区  · 8 年前

    脚本:

    我正在使用Jmeter进行API测试。我已经为404添加了一个响应代码断言,也就是说,我期望404。

    所以当我期待它的时候,它应该是绿色的,但它是红色的(它看起来是绿色的200)。我怎样才能修好它?

    我在用 Jmeter 3.x on windows 而听众是 JMeter View Results in table

    2 回复  |  直到 8 年前
        1
  •  1
  •   timbre timbre    8 年前

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

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

    enter image description here

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

      if("404".equals(SampleResult.getResponseCode())) { // Success
          SampleResult.setSuccessful(true); // Change sampler status to success
          AssertionResult.setFailure(false); // Set assertion status to success as well
      } 
      else {
          AssertionResult.setFailure(true); // Set assertion status to failure
      }
      

    此代码仅覆盖状态,但是您可以更改 SampleResult AssertionResult

    例子:

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

    enter image description here

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

    enter image description here

        2
  •  0
  •   sunny_teo    8 年前

    这是预期的行为。

    在下图中,第一个请求是404,响应断言是404。因此,HTTP sampler失败了,因为它是404,但是正如您所看到的,传递的断言在第一个httpsampler中没有展开符号。

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

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

    enter image description here

    现在,解决方案是,您可以使用“Ignore Status”复选框来传递采样器,即使它是404,断言也是404,如下所示:-

    enter image description here

    enter image description here