Pratik
Pratik

Reputation: 982

Message is not printing on the console in jmeter using JSR223 and groovy

println() inside static void main method is not printing anything anywhere, whereas only println() prints in terminal. Here is my code:

class CalcMain {
static void main(def args) throws Exception {
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("groovy");

    println("testing");
  }
}

And when I ran it shows pass (Green Triangle in Jmeter) but doesnt print anything on terminal

Whereas a simple program such as

println("testing");

prints on terminal.

Could someone please let me know where I am doing wrong?

Upvotes: 28

Views: 63423

Answers (5)

sumon c
sumon c

Reputation: 789

Use below to display text in JMeter Response Tab in "Results Tree":

SampleResult.setResponseData("Document: " + variable,"UTF-8");

Use below to log in the console text area of JMeter:

log.info("hello");

A 3rd option is to use Java standard:

System.out.println("Any String");

Above can be written from any Java/Groovy/JSR223 sampler. But it will be printed on the Parent CMD window that opened the JMeter UI in windows.

Upvotes: 11

Alex Martian
Alex Martian

Reputation: 3782

You have not provided all code, just your part produces errors as imports are also needed. Definition of class does not run by its own, you need as instance and then run in explicitly, then it prints (both with and w/out System.out. prefix) to terminal:

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

class CalcMain {
static void main(def args) throws Exception {
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("groovy");

    println ("testing1");
    System.out.println ("testing2");
  }
}

CalcMain test1 = new CalcMain();
test1.main();
println ("testing3");

Output:

testing1
testing2
testing3

Upvotes: 0

Franta
Franta

Reputation: 1024

Chapter "2. OUT" shows the answer:

https://jmetervn.com/2016/12/05/jsr223-with-groovy-variables-part-1/

use the OUT command.

OUT.println("INPUT MESSAGE HERE");

Upvotes: 3

djangofan
djangofan

Reputation: 29669

Don't use System.out.println in a Groovy or Beanshell step in jmeter. Instead , do this:

1. Enable the stdout console in Jmeter so that you can see the output.
2. Use  log.info("Message:" + vars.get("variableName"));  instead.

Upvotes: 33

Jay
Jay

Reputation: 1409

Try it: System.out.println("testing")

Upvotes: 0

Related Questions