首页 > 解决方案 > 运行pabot时如何通过Jenkins向slack输出测试通过/失败通知

问题描述

我想使用 pabot(机器人框架测试的并行运行)通过 Jenkins 在 slack 中设置通知。

我已经将 Jenkins 配置为在使用机器人时输出通过/失败/跳过通知,但是一旦我将其更改为 pabot,通知就不再出现在我的 slack 频道中。

此命令成功运行,并且我的 slack 频道会收到通过/失败/跳过的测试的通知

robot -A Config/Config.args -d results -v REMOTE_URL:http://dummy:0000/wd/hub Tests 在此处输入图像描述

另一方面,这个命令会提醒我的频道构建已经开始,但之后什么都没有

pabot -A Config/Config.args -d results -v REMOTE_URL:http://dummy:0000/wd/hub Tests

成功配置 在该目录中,将创建一个 pabot_results 文件,该文件与使用机器人命令的构建不同。但是 output.xml、log.html 和 report.html 文件包含了预期的结果。

我希望基本通过/失败/跳过出现在松弛通道中以进行并行运行测试。目前没有测试结果出现在松弛通道中。

在此处输入图像描述

标签: jenkinsrobotframeworkslack

解决方案


我正在使用Jenkins 声明式管道,并且在使用Token Macro 插件运行机器人测试后,我在帖子部分中解决了以下问题:

post {
    always {
        robot(
            outputPath: 'Reports/',
            outputFileName: 'output.xml',
            reportFileName: 'report.html',
            logFileName: 'log.html',
            disableArchiveOutput: false,
            passThreshold: 100.0,
            unstableThreshold: 95.0,
            otherFiles: '*.png,debug.log'
        )
        script {
            String robotReportSummary = tm('ROBOT_FAILEDCASES: ${ROBOT_FAILEDCASES}, ROBOT_PASSPERCENTAGE: ${ROBOT_PASSPERCENTAGE}, ROBOT_PASSRATIO: ${ROBOT_PASSRATIO}, ROBOT_REPORTLINK: ${ROBOT_REPORTLINK}')
            // Instead of echo step you can use whatever you want with variable robotReportSummary
            echo "${robotReportSummary}"
        }
    }
}

更多信息:

Robot Framework 插件的文档中可以看到以下令牌宏的插件导出:

  • ${ROBOT_FAILEDCASES}
  • ${ROBOT_PASSPERCENTAGE, onlyCritical}
  • ${ROBOT_PASSRATIO, onlyCritical}
  • ${ROBOT_REPORTLINK}

也可以从Robot Framework 插件的源代码中找到其他未记录的令牌宏:

  • ${ROBOT_FAILED}
  • ${ROBOT_PASSED}
  • ${ROBOT_TOTAL}

为了在声明式管道中访问这些宏,您可以使用Token Macro 插件,它是管道步骤tm。从文档中不清楚它是否返回带有替换变量的字符串。但是可以在例如Token Macro 插件的源代码中找到用法。


推荐阅读