ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of:

穿精又带淫゛_ 提交于 2019-12-08 07:29:29

问题


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.


回答1:


There can be the following possible reasons:

  1. You don't have the .jar which provides org.json.JSONObject class in JMeter CLASSPATH.

    • Download the jar i.e. from the Maven central repo
    • Copy it to JMeter's "lib" folder
    • Restart JMeter to pick the .jar up
  2. 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



来源:https://stackoverflow.com/questions/37855894/error-jmeter-util-beanshellinterpreter-error-invoking-bsh-method-evalsource

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!