如何根据条件

时间:2017-11-30 10:08:31

标签: jenkins jmeter jenkins-plugins jenkins-pipeline

我使用Jmeter验证API的功能测试。我创建了一个HTML文件,其中包含执行的测试总数和通过/失败的测试。这是一份定制报告。

如果报告中出现单个故障,我是否可以设置一个条件使构建失败?

请注意,我已经尝试过性能插件。但我在这里的断言是看测试用例是否失败或通过而不是响应/通过时间。

不确定是否有一个插件可以让我读取HTML,如果它看到一个失败的测试用例,则会使报告失败。

4 个答案:

答案 0 :(得分:3)

最简单的选择是使用https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root工具作为包装器运行JMeter测试。 Taurus具有强大而灵活的Taurus子系统,您可以在其中配置测试失败阈值的任意组合,如果发生任何故障,Taurus将以非零Pass/Fail Criteria退出。 Jenkins非常聪明,可以捕获这个非零退出代码并使构建失败。

JMeter-only解决方案将添加exit status脚本,如:

if (!prev.isSuccessful()) {
    System.exit(1)
}

基本上也是如此 - 如果发生任何故障,测试将立即退出,状态为1,从而触发构建失败。

答案 1 :(得分:2)

您可以使用shell作业,grep查找失败并退出(如果找到),如下所示:

#!/bin/sh
if grep 'failure' file.html; then
    exit 1
fi

答案 2 :(得分:0)

我不知道HTML文件的结构是什么,但由于它是测试通过/失败报告,所以我认为它非常简单。 您可以尝试将“执行Python脚本”(需要“Python插件”)添加到作业中。有了它,您可以轻松解析HTML文档并使用简单的脚本检查结果。

答案 3 :(得分:0)

我和Jenkins和JMeter有类似的问题。这是我做的:

  1. 安装此插件:https://wiki.jenkins.io/display/JENKINS/Log+Parser+Plugin
  2. 对于您的logParserfile,添加:
  3.   

    错误/失败/

    1. 为您正在测试的每个采样器创建一个BeanShell Assertion,其中包含以下内容:

      String testscenario =“TEST SCENARIO:”; String requestName =“getRequest”; String ver =“$ {My_ver}”; String respData = new String(ResponseData);

      if(respData.contains(“OK”)) {     log.info(testscenario +“Passed。”+ requestName +“version =”+ ver);     print(testscenario +“Passed。”+ requestName +“version =”+ ver);
      其他 {     log.error(testscenario +“* FAILED。”+ requestName);
          print(testscenario +“* FAILED。”+ requestName);
      }

    2. 当您的Jenkins作业运行且任何操作失败时,FAILED日志条目将显示