Getting below error when i run the jmeter script having Beanshell Post Processor as a child to a sampler.
ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``try { newuser= vars.get("prevUsrResponse"); org.json.JSONObject userJSON= new o . . . '' : Typed variable declaration : Class: org.json.JSONObject not found in namespace
Below is the code written and run in 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}
variable doesn't return the json(or any value) when used in the next sampler request.
There can be the following possible reasons:
You don't have the .jar which provides org.json.JSONObject class in JMeter CLASSPATH.
You dont have the relevant import line. Add it to the beginning of your script:
import org.json.JSONObject;
You can also consider upgrading to JMeter 3.0 which comes with built-in JSON support and provides JSON Path PostProcessor to extract data from JSON responses. If you still want Beanshell - it is also possible, just use json-smart classes