jmeter中的复杂响应断言

时间:2014-07-07 14:31:53

标签: jmeter

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

  1. 201回复没问题
  2. 409响应也可以(但我将此代码提取到变量并稍后尝试重试)
  3. 400响应可能没问题,但只有在响应正文中有某个字符串时
  4. 上面的第1项和第2项我工作正常:我稍后使用响应代码提取器和If控制器处理2。

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

    我想要构建的最终断言是这样的:

    “(如果响应代码是201或409)(如果响应代码为400且正文中找到'substring')确定”

1 个答案:

答案 0 :(得分:1)

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

相关的Beanshell代码如下所示:

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

有关使用JMeter断言获取信心的详细信息,请参阅How to Use JMeter Assertions in 3 Easy Steps指南。