当我运行将 Beanshell 后处理器作为采样器子级的 jmeter 脚本时出现以下错误。
``尝试{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(或任何值)。
可能有以下几种原因:
您在 JMeter CLASSPATH 中没有提供 org.json.JSONObject 类的 .jar。
您没有相关的导入行。将其添加到脚本的开头:
import org.json.JSONObject;
您还可以考虑升级到JMeter 3.0,它带有内置的 JSON 支持,并提供 JSON Path PostProcessor 从 JSON 响应中提取数据。如果你仍然想要 Beanshell - 也是可以的,只需使用 json-smart 类