jmeter中的复杂响应断言



我正在努力为这个场景构建一个适当的测试:基本上,我正在对web服务进行POST调用,并尝试断言以下内容:

  1. 201响应是ok的
  2. 409响应也是可以的(但我将此代码提取到一个变量并稍后尝试重试)
  3. 400响应可能是可以的,但只有在响应体中有特定的字符串

上面的项目1和2我工作得很好:我用响应代码提取器和If控制器处理2。

我的问题是:我如何测试响应体上的给定子字符串,但仅在400响应代码的情况下?

我想构建的最后一个断言是这样的:

"(如果响应码是201或409)(如果响应码是400且在正文中找到'子字符串') OK"

我认为您需要使用Beanshell断言,因为它是所提供的所有断言中最灵活的。

相关的Beanshell代码如下所示:

if (ResponseCode.equals("201") || ResponseCode.equals("409") || (ResponseCode.equals("400") && SampleResult.getResponseDataAsString().contains("something"))) {
    Failure = false;
}

参见如何使用JMeter断言在3个简单步骤指南中获得更多关于使用JMeter断言获得信心的细节。

最新更新