BSF Post 处理器中的空响应

Empty Response In BSF Post Processor

我正在尝试将 BSF Post 处理器与 HTTP 请求采样器一起使用。响应的正文是 JSON,但我似乎没有在我的脚本中看到正文。

下面的测试脚本:

var response = prev.getResponseDataAsString();

if (response.length > 0) {
    vars.put('foo', 'success');
}
else {
    vars.put('foo', 'failure');
}

对服务器的后续调用显示 'failure' 作为 foo 的值。

附加调试post处理器表示有一个响应体:

{"success":true,"total":0,"results":[]}

有没有可能是我遗漏了一些设置?

根据 JavaDoc vars.put() 方法需要 2 个字符串

  • 变量名
  • 变量值

如果您需要将长值存储到 JMeter 变量中,您需要使用 vars.putObject() 方法。

另一种选择是将您的 13808513700 转换为字符串,方法是用引号将其括起来

vars.put('foo', '13808513700');

要了解有关 vars、props、ctx、etc.check 等预定义变量的更多信息,请参阅 How to use BeanShell: JMeter's favorite built-in component 指南。


更新

由于原问题已经修改,这里是修改后的答案。

您需要将对 JavaScript 字符串对象的响应显式转换为:

var response = new String(prev.getResponseDataAsString());