Jenkins在实际失败时验证JMeter构建是否成功

时间:2016-12-30 13:19:35

标签: jenkins jmeter jenkins-plugins performance-testing qa

我有类似的问题,阻止了我。我需要用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

尝试过我试过并且不适合我:

  1. 较旧版本的Performance插件(v 1.11和v.16)
  2. .jtl格式
  3. .xml
  4. 的.csv
  5. 添加" echo"到最后的命令行
  6. 设置jmeter.save.saveservice.response_data=true
  7. 想出如何让Performance插件计算错误并提高"失败"旗帜:(

    请帮忙。

3 个答案:

答案 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