23

方法内部的 println()static void main不会在任何地方打印任何内容,而只有 println() 在终端中打印。这是我的代码:

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

    println("testing");
  }
}

当我运行它时显示通过(Jmeter 中的绿色三角形)但没有在终端上打印任何内容

而一个简单的程序,如

println("testing");

在终端上打印。

有人可以让我知道我在哪里做错了吗?

4

5 回答 5

28

不要在 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.
于 2015-01-26T16:03:09.703 回答
10

使用下面在“结果树”中的 JMeter 响应选项卡中显示文本:

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

使用以下命令登录 JMeter 的控制台文本区域:

log.info("hello");

第三种选择是使用 Java 标准:

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

以上可以从任何 Java/Groovy/JSR223 采样器编写。但它将打印在在窗口中打开 JMeter UI 的父 CMD 窗口上。

于 2017-01-29T00:01:49.027 回答
3

“2.OUT”一章给出了答案:

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

使用OUT命令。

OUT.println("INPUT MESSAGE HERE");
于 2017-10-19T11:58:14.557 回答
0

试试看: System.out.println("testing")

于 2013-11-08T13:25:18.190 回答
0

您没有提供所有代码,只是您的部分会产生错误,因为还需要导入。类的定义不是自己运行的,您需要作为实例然后显式运行,然后它会打印(带有和不带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
于 2019-10-17T08:02:42.203 回答