相关文章推荐
痴情的硬盘  ·  golang ...·  1 年前    · 
有腹肌的肉夹馍  ·  version control - Is ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: import org.apache.jmeter.services.FileServer; String path=FileServer.getFileSer . . . '' : Attempt to access property on undefined variable or class name 2022-01-27 19:50:51,923 WARN o.a.j.e.BeanShellPostProcessor: Problem in BeanShell script: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: import org.apache.jmeter.services.FileServer; String path=FileServer.getFileSer . . . '' : Attempt to access property on undefined variable or class name

JMETER BEANSHELL CODE: (Beanshell post processor) import org.apache.jmeter.services.FileServer; String path=FileServer.getFileServer().getBaseDir();

var1= vars.get("userid");      
var2= vars.get("username");
var3= vars.get("userfullname");
var4= ${exam_id};

f = new FileOutputStream("C://apache-jmeter-5.4.1/apache-jmeter-5.4.1/bin/Script4.csv",true); p = new PrintStream(f);

this.interpreter.setOut(p); p.println(var1+ "," +var2 + "," +var3 + "," +var4);

f.close();

  • Since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting so it worth considering migrating to Groovy.

  • If you run this code with more than 1 thread (virtual user) you will face a race condition resulting in data corruption when multiple threads will be writing into the same file. JMeter provides sample_variables property allowing to write variables values to the .jtl results file, if you need to store the data in a separate file - go for Flexible File Writer

    I have used 70 thread count, but only 69 are written into the file, and 2 exceptions are received. So, I think this "var4= vars.get("exam_id");" will not help out. – Everest Jan 28, 2022 at 8:38

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.

  •