jenkins - 运行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 文件包含了预期的结果。
我希望基本通过/失败/跳过出现在松弛通道中以进行并行运行测试。目前没有测试结果出现在松弛通道中。
解决方案
我正在使用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 插件的源代码中找到用法。
推荐阅读
- c++ - 如何正确地为 Makefile 提供预处理器变量?
- r-exams - 如何在 NOPS 考试的标题页上隐藏考试 ID?
- typescript - 无法创建父类
- salesforce - 为什么工作流规则不适用于 Salesforce?
- node.js - 幻影安装失败 EACCES:权限被拒绝 - AWS - NodeJS - 无法部署更新的应用程序
- spring-boot - 在 Spring Boot 指标中计算 AsyncResponse 调用
- php - Laravel 有时显示 404 not found 页面
- jenkins-pipeline - 我想根据带有项目名称和状态的 jenkins 构建来更改工作流状态
- jquery - JQuery - on() Keyup Validation 不起作用
- qt - 有没有办法在占位符文本 QML 中为特定单词着色?