2016-12-16 115 views
0

我一直在寻找与Jmeter的一个问题的解决方案。我需要在我的测试计划中加入一些逻辑,这些逻辑可以给出测试用例执行结果上计算的简单报告PASS/FAIL,并在之后生成JTL报告。例如Jmeter测试计划总结报告通过/失败

  1. 所有测试通过 - 测试计划的结果= PASS
  2. 一个或多个测试失败 - 测试计划的结果=失败
+0

您可以使用聚合报告/摘要报告提供的听众误差百分比场。如果错误%= 0,则所有测试都通过,否则失败。 –

回答

0

大多数合适的选择使用第三方工具假定,到即:

  • 您可以在Jenkins运行JMeter测试和使用性能的插件,它允许有条件构建失败,如果超过指定的失败的请求量门槛

    Jenkins performance plugin

  • 您可以使用Taurus工具,一个包装运行JMeter测试,它具有灵活和强大Pass/Fail Criteria Subsystem允许设置不同的标准定义为通过或失败来标记测试。如果构建失败,则Taurus进程返回非零退出代码。

如果上述方法不适合于任何原因请详细说明您的问题,并解释如何以及在哪里,你想看看这个“失败”或“PASS”的结果。

+0

嗨德米特里, 所以这里是这个练习的主要目标,我想在测试执行后用邮件发送整体测试计划结果作为主题/正文消息。 –

+0

起初,我认为它可以以某种方式从JTL报告中提取,然后放入蚂蚁邮件任务。 –

+0

再次有几个这样做的选择。如果您需要Ant,您可以使用[XPath Task](http://www.planetgeek.ch/2009/05/17/perform-xpath-queries-inside-ant/)获取失败次数,并且[If Task ](http://ant-contrib.sourceforge.net/tasks/tasks/if.html)有条件地将属性设置为PASS或FAIL。其他选项是使用[SMTP Sampler]直接从JMeter发送电子邮件(https://www.blazemeter.com/blog/load-testing-your-email-server-how-send-and-receive-e-mails-jmeter )。 –

0

添加一个BeanShell的监听器和一个BeanShell的采样器在你的线程组的结束,并把这个监听器:

if(sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) 
    if (!sampleEvent.getResult().isResponseCodeOK()) 
      vars.put("res", -1); 

而且在BS样的说:

  • 如果你想储存的结果属性:

props.put("testPlanResult", vars.get("res") != -1 ? "PASS" : "FAIL");

  • ,如果你想将结果保存在一个文件中:
f = new FileOutputStream("/path/to/file.txt", false); 
p = new PrintStream(f); 

p.println("Result: " + (vars.get("res") != -1 ? "PASS" : "FAIL")); 

p.close(); 
f.close(); 

从这里你可以做你需要创建财产或含结果文件什么都...

希望这可以帮助你!

编辑:

您将需要添加此导入如果写入结果文件:

import org.apache.jmeter.services.FileServer;