我试图将BSF后处理器与HTTP请求采样器一起使用。响应的主体是JSON,但似乎我没有在我的脚本中看到正文。
下面的测试脚本:
var response = prev.getResponseDataAsString();
if (response.length > 0) {
vars.put('foo', 'success');
}
else {
vars.put('foo', 'failure');
}
对服务器的后续调用显示'failure'
为foo
的值。
附加调试后处理器表示存在响应正文:
{"success":true,"total":0,"results":[]}
有可能我在这里缺少一些设置吗?
答案 0 :(得分:1)
根据JavaDoc vars.put()
方法需要2个字符串
如果您需要将长值存储到JMeter变量中,则需要使用vars.putObject()方法。
另一种选择是将13808513700
转换为字符串,方法是用引号
vars.put('foo', '13808513700');
要了解有关 vars,props,ctx 等预定义变量的详情,请查看How to use BeanShell: JMeter's favorite built-in component指南。
<强>更新强>
原始问题已被修改,以下是修改后的答案。
您需要将对JavaScript String对象的响应显式转换为:
var response = new String(prev.getResponseDataAsString());