0

我已经在我正在构建的 API 上启动并运行了 Jmeter 测试。
如果 API 过载,API 会返回:

{"status":{"type":"failure","cause":"internal","http":500}}

我想做的是让 JMeter 也暂停,如果它得到这个结果。

我已经设置了一个捕获这些错误的响应断言。看起来这应该是一个简单的设置,但我没有看到它。我看到我可以添加一个 If 控制器,但这仅适用于 Javascript 变量。

我是否需要添加正则表达式提取器,将“失败”作为“类型”变量,然后将其添加到 If 控制器?
似乎有点过于复杂?
我错过了什么吗?

4

1 回答 1

2

尝试使用BeanShell Timer来处理这种情况。

  • 允许编写脚本,因此您可以根据需要对计时器行为进行编程;
  • 可以通过 ctx 变量访问 jmeter 上下文,因此您可以处理 ResponseCode 条件。

在这里您可以找到带有示例如何使用的好文章。在这里
-如何访问 beanshell 变量和处理响应代码。

您的情况将是这样的:

if (prev.getResponseCode().equals("500") == true) { 
    . . .
}

请注意:BeanShell Timer 中使用的脚本应将返回值用作等待的毫秒数。

另一个问题是这样做的原因是什么。
如果您有负载/压力测试场景,那么这些结果是您应该在测试期间获得并分析的结果。
如果您有某种“功能性”测试场景,那么您必须以更一般的方式处理这种情况,为每个采样器添加任何类型的正确配置的计时器- 以避免过载或模拟“现实生活”场景。
我错过了什么吗?

于 2012-04-11T18:26:49.170 回答