BSF后处理器中的空响应

时间:2015-06-04 18:41:13

标签: jmeter

我试图将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":[]}

有可能我在这里缺少一些设置吗?

1 个答案:

答案 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());