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

问题描述 投票:0回答:1

当我运行将 Beanshell 后处理器作为采样器子级的 jmeter 脚本时出现以下错误。

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method:
  eval  Sourced file: inline evaluation of:``尝试{newuser= vars.get("prevUsrResponse"); 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(或任何值)。

json jmeter beanshell
1个回答
0
投票

可能有以下几种原因:

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

    • Maven 中央存储库
    • 下载 jar
    • 复制到JMeter的“lib”文件夹
    • 重新启动 JMeter 以拾取 .jar
  2. 您没有相关的导入行。将其添加到脚本的开头:

    import org.json.JSONObject;
    

您还可以考虑升级到JMeter 3.0,它带有内置的 JSON 支持,并提供 JSON Path PostProcessor 从 JSON 响应中提取数据。如果你仍然想要 Beanshell - 也是可以的,只需使用 json-smart

© www.soinside.com 2019 - 2024. All rights reserved.