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());
我正在尝试将 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());