我有一个Jmeter测试并在我正在构建的API上运行 如果API过载,则API返回:
{"status":{"type":"failure","cause":"internal","http":500}}
我想做的是如果JMeter得到了那个结果,也会暂停。
我已经设置了一个捕获这些错误的响应断言。看起来这应该是一个简单的设置,但我没有看到它。我看到我可以添加一个If Controller,但这只适用于Javascript vars。
我是否需要添加正则表达式提取器,将“失败”作为“类型”变量抓取,然后将其添加到If控制器?
似乎有点过于复杂了?
我错过了什么吗?
答案 0 :(得分:2)
尝试使用BeanShell Timer来处理这种情况。
它
Here你可以找到一篇很好的文章,并举例说明如何使用 here - 如何访问beanshell变量并处理响应代码。
你的情况将是这样的:
if (prev.getResponseCode().equals("500") == true) {
. . .
}
请注意:BeanShell Timer 中使用的脚本应返回值用作等待的毫秒数。
另一个问题是这样做的原因。
如果您有负载/压力测试场景,那么这些结果是您在测试期间应该得到的结果,然后进行分析
如果您有一种“功能”测试场景,那么您必须以更一般的方式处理这种情况,向每个采样器添加任何类型的正确配置timer - 以避免过载或模拟“真实”场景。
我错过了什么吗?