我正在使用jmeter GUI来创建负载测试。我遇到的问题是试图根据响应代码中的响应代码和指定的字符串或字符串来确定http请求的通过或失败。
为什么我需要这个?有两个原因:响应代码200并不一定意味着返回的内容是我所期望的。我可以收到200的响应代码,但响应的主体不是我正在寻找的响应。在这种情况下,我想失败http请求。
此外,响应代码304是一个成功的响应,所以我想传递http请求,如果我得到304.是的,我知道你可以简单地插入一个响应断言并检查该代码,但如果我不得到一个304,我想检查响应体的内容是否有预期的字符串。如果我得到我正在寻找的字符串,我想传递http请求。否则,我想失败http请求。
所以这里是我想要使用的条件语句的伪代码,....但是无法弄清楚如何在jmeter GUI中做到这一点:
IF responseCode == 304
结果=通过
ELSE IF responseText包含“blah”
结果=通过
ELSE
结果=失败
将http请求报告为已通过或未通过的响应
jmeter不允许我在HTTP请求采样器内部安装IF控制器,也不允许您在响应声明中执行布尔测试,以指定传递响应或使响应失败的多个条件。 / p>
我已尝试过其他一些解决方法,但到目前为止还没有运气。任何帮助或方向将不胜感激。
感谢。
答案 0 :(得分:1)
我相信Beanshell Assertion提供了必要的灵活性。
转换为Beanshell的伪代码应该类似于:
if (ResponseCode.equals("304")) {
Failure = false;
}
else if (new String(ResponseData).contains("blah")) {
Failure = false;
}
else {
Failure = true;
}
有关JMeter断言的全面信息,请参阅How to Use JMeter Assertions in Three Easy Steps指南,包括基于脚本的Beanshell和JSR223。
答案 1 :(得分:0)
您需要将Response Assertion添加到测试计划中。 JMeter将根据收到的响应自动将其标记为通过或失败。