错误 - jmeter.util.BeanShellInterpreter:调用bsh方法时出错:eval源文件:内联评估:

时间:2016-06-16 09:58:39

标签: json jmeter beanshell

当我将带有Beanshell Post Processor的jmeter脚本作为孩子运行到采样器时,获得以下错误。

  

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of:``try {newuser =   vars.get(" prevUsrResponse&#34); org.json.JSONObject userJSON = new o。 。 。   '' :类型变量声明:未找到类:org.json.JSONObject   在命名空间

以下是在jMeter 2.9中编写和运行的代码。

newuser= vars.get("prevUsrResponse");
org.json.JSONObject userJSON= new org.json.JSONObject(newuser);

if(prevUsrJSON.has("User") && custJSON.get("User")!= null) {
   org.json.JSONObject contactJSON = userJSON.getJSONObject("User");

  contactJSON.put("UserType","Private");

}

vars.put("updatedUser", userJSON.toString());

${updatedUser}变量在下一个采样器请求中使用时不返回json(或任何值)。

1 个答案:

答案 0 :(得分:0)

可能有以下可能的原因:

  1. 您没有.jar,它在JMeter CLASSPATH中提供了org.json.JSONObject类。

    • Maven central repo
    • 下载jar
    • 将其复制到JMeter" lib"夹
    • 重新启动JMeter以选择.jar up
  2. 您没有相关的进口线。将其添加到脚本的开头:

    import org.json.JSONObject;
    
  3. 您还可以考虑升级到内置JSON支持的JMeter 3.0,并提供JSON Path PostProcessor从JSON响应中提取数据。如果您仍然想要Beanshell - 也可以使用json-smart