bash脚本中的jmeter退出代码总是返回0

Rag*_*rok 5 bash jmeter load-testing

jmeter在 bash 脚本中使用,如果任何断言失败,我如何管理它返回非零值?

jmeter -n -t someFile.jmx
echo $?

# always returns 0, even if an assertion failed
Run Code Online (Sandbox Code Playgroud)

我尝试Bean Shell Assertion使用脚本:

if (ResponseCode.equals("200") == false) {
  System.exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

但这甚至没有返回0,它只会终止进程(我猜?)

有人可以帮我吗?

use*_*900 6

将以下代码放入JSR223 元素中

System.exit(1);
Run Code Online (Sandbox Code Playgroud)

执行时会返回1Linux中显示的错误级别echo $?


Dmi*_*i T 0

  1. 我无法重现您的问题,您确定您的断言确实有效吗?代码或多或少都可以,但是放置在哪里也很重要。

    #./jmeter -n -t test.jmx
    Creating summariser <summary>
    Created the tree successfully using test.jmx
    Starting the test @ Thu Jun 21 07:34:49 CEST 2018 (1529559289011)
    Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
    #echo $?
    255
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可以使用Jenkins 性能插件,在达到/超过某些阈值时,它可以自动将构建标记为不稳定或失败。
  3. 您可以使用Taurus工具作为 JMeter 测试的包装器。它具有强大而灵活的通过/失败标准子系统,您可以在其中定义断言逻辑,如果出现失败 - Taurus 将向父 shell 返回非零退出代码。