web-dev-qa-db-ja.com

JSR223とgroovyを使用してjmeterのコンソールにメッセージが印刷されない

static void mainメソッド内のprintln()は何も印刷しませんが、ターミナルではprintln()のみが印刷します。これが私のコードです:

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

    println("testing");
  }
}

そして、私が実行したとき、それはパス(Jmeterの緑の三角形)を示していますが、端末には何も印刷しません

一方、次のような単純なプログラム

println("testing");

端末に印刷します。

誰かが私が間違っているところを教えてもらえますか?

ありがとう

16
Pratik

JmeterのGroovyまたはBeanshellステップでSystem.out.printlnを使用しないでください。代わりに、これを行います。

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

以下を使用して、「結果ツリー」のJMeter応答タブにテキストを表示します。

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

以下を使用して、JMeterのコンソールテキスト領域にログインします。

log.info("hello");

3番目のオプションは、Java標準:

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

上記は、任意のJava/Groovy/JSR223サンプラーから書き込むことができます。ただし、ウィンドウでJMeterUIを開いた親CMDウィンドウに出力されます。

5
sumon c

「2. OUT」の章は答えを示しています。

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

OUTコマンドを使用します。

OUT.println("INPUT MESSAGE HERE");
2
Franta

すべてのコードを提供したわけではありません。インポートも必要なので、自分の部品だけがエラーを生成します。クラスの定義はそれ自体では実行されません。インスタンスとして必要であり、明示的に実行すると、ターミナルに出力されます(System.out.プレフィックス付きとなしの両方)。

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");

出力:

testing1
testing2
testing3
0

試してみてください:System.out.println( "testing")

0
Jay