当我将带有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(或任何值)。
答案 0 :(得分:0)
可能有以下可能的原因:
您没有.jar,它在JMeter CLASSPATH中提供了org.json.JSONObject类。
您没有相关的进口线。将其添加到脚本的开头:
import org.json.JSONObject;
您还可以考虑升级到内置JSON支持的JMeter 3.0,并提供JSON Path PostProcessor从JSON响应中提取数据。如果您仍然想要Beanshell - 也可以使用json-smart类