我有类似的问题,阻止了我。我需要用Jenkins运行我的JMeter测试。但Jenkins验证JMeter构建在实际失败时是否成功。我想知道我做错了什么,以便当断言失败时,jmeter不会返回失败。 我运行一个调用jMeter的Windows Batch脚本。以下是:
命令行
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插件(v 2.0)和Jenkins ver验证报告。 2.32.1
CONSOLE
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
如您所见,我有1个错误。但Performance插件将构建设置为成功。
PLUGIN SETTINGS performance plugin settings
Jmeter属性
jmeter.save.saveservice.assertion_results=all
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
TEST CASE Test-page.jmx
尝试过我试过并且不适合我:
jmeter.save.saveservice.response_data=true
想出如何让Performance插件计算错误并提高"失败"旗帜:(
请帮忙。
答案 0 :(得分:3)
将“在单个版本上使用错误阈值”设置为0到1
。
这应该意味着如果JMeter测试用例中至少有1个错误,则jenkins构建失败,其中0忽略错误计数(如果我没记错的话)。
答案 1 :(得分:2)
听起来像是一个Performance Plugin问题,我相信你应该通过Jenkins Bug Tracker
报告在此期间,我建议为JMeter构建步骤返回非零退出代码,最快和最简单的方法是使用Taurus工具作为包装器运行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 Scripting Elements来直接从JMeter测试中更改JMeter退出代码,如:
if (some condition) {
System.exit(1);
}
但在这种情况下,您在设置失败标准方面不会有很大的灵活性
答案 2 :(得分:0)
我将我的选择评估模式设置为标准模式,在错误阈值上设置单选按钮,并设置不稳定和失败< / strong>至1