当JMeter构建实际上失败时,Jenkins将其验证为成功

rsl1atfo  于 2022-11-09  发布在  Jenkins
关注(0)|答案(3)|浏览(269)

我也遇到了类似的问题,我需要用Jenkins运行我的JMeter测试。但是Jenkins验证JMeter构建成功,而实际上它失败了。我想知道我做错了什么,以至于当Assert失败时,jmeter不会返回失败。我运行了一个调用jMeter的Windows批处理脚本。下面是方法:

命令行

cd C:\apache-jmeter-3.1\bin
jmeter -n -c -t C:\Users\maria\Desktop\Automation\WIP\Test-page.jmx -l C:\Users\maria\Desktop\Automation\WIP\Test-page.xml

并将结果保存在.xml中,以便使用Performance插件(2.0版)和Jenkins 2.32.1版验证报告

控制台

Created the tree successfully using C:\Users\maria\Desktop\Automation\WIP\Test-page.jmx
Starting the test @ Fri Dec 30 11:05:58 GMT 2016 (1483095958952)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary =      1 in 00:00:00 =    3.1/s Avg:   206 Min:   206 Max:   206 Err:     1 (100.00%)
Tidying up ...    @ Fri Dec 30 11:05:59 GMT 2016 (1483095959326)
... end of run

Performance: Recording JMeter reports 'C:\Users\maria\Desktop\Automation\WIP\Test-page.xml'
Performance: Parsing JMeter report file 'C:\Jenkins\jobs\Test demo\builds\3\performance-reports\JMeter\Test-page.xml'.
Performance: Percentage of errors greater or equal than 0% sets the build as unstable
Performance: Percentage of errors greater or equal than 0% sets the build as failure

Finished: SUCCESS

正如你所看到的,我有一个错误。但性能插件设置的建设成功。

插件设置performance plugin settings
Jmeter属性

jmeter.save.saveservice.assertion_results=all
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true

测试用例Test-page.jmx

我尝试过但没有成功的尝试:
1.性能插件的旧版本(v1.11和v.16)
1..jtl格式
1..xml文件
1..csv格式
1.最后在命令行中添加“echo
1.设置jmeter.save.saveservice.response_data=true
不知道如何让性能插件计算错误并发出“失败”标志:(

dfty9e19

dfty9e191#

将“对单个生成使用错误阈值”设置为0到1
这应该意味着,如果在JMeter测试用例中至少有1个错误,jenkins构建就会失败,其中0忽略了错误计数(如果我没记错的话)。

kpbpu008

kpbpu0082#

听起来像是性能插件问题,我相信您应该通过Jenkins Bug Tracker报告此问题
同时,为了解决这个问题,我建议为JMeter构建步骤返回非零退出代码,最快和最简单的方法是使用Taurus工具作为 Package 器运行JMeter测试。Taurus有强大的Pass/Fail Criteria subsystem,在那里你可以定义你的构建失败的条件。如果条件满足,Taurus执行步骤将以代码3完成。Jenkins非常聪明,能够自动使退出代码为非零的命令行任务失败。
最小工作Taurus配置文件:

---
execution:
  scenario: my-test

scenarios:
  my-test:
    script: C:\Users\maria\Desktop\Automation\WIP\Test-page.jmx

services:
- module: passfail
  criteria:
  - succ<100%, stop as failed

更多信息(如需要):Meetup Recap on Using Taurus to Automate JMeter and Jenkins Tests
您还可以通过JSR223脚本元素直接从JMeter测试中更改JMeter退出代码,例如:

if (some condition) {
    System.exit(1);
}

但在这种情况下,您在设置失败标准方面没有太大的灵活性,

33qvvth1

33qvvth13#

我将选择评估模式设置为标准模式,将单选按钮设置为错误阈值,并将不稳定失败设置为1

相关问题