如何将Azure DevOps自动化测试结果附加到Slack通知消息中
问题解答
自定义Slack通知可行性
完全可以自定义Azure DevOps发布管道的Slack通知内容,你提到的测试结果统计直显、测试报告附件的需求都可以实现。
测试结果提取方案
你提到的GET Runs List API完全可以满足测试结果提取需求,接口返回体中直接包含passedTests、failedTests、totalTests等统计字段,无需额外解析结果文件即可拿到对应数值。
推荐实现步骤(自由度最高,支持附件上传)
你可以直接在现有Release管道的所有测试任务后,新增一个自定义脚本任务完成通知推送,流程如下:
- 提前将Azure DevOps PAT(需配置测试结果读取权限)、Slack API Token存为管道机密变量,避免明文泄露
- 新增PowerShell/Bash脚本任务,编写逻辑如下:
- 调用对应版本的Runs List接口,拉取当前发布关联的所有测试运行数据,统计得到总通过、失败用例数
- 构造Slack消息内容,你需要的统计块可直接按如下格式输出:
TestResults: Passed: ${passedCount} Failed: ${failedCount}- 如果需要附加.trx/.html格式的测试结果文件,调用Slack的
files.upload接口,将生成的结果文件作为附件一同上传到目标频道
- 调整管道任务执行条件,确保只有所有测试任务运行完成后才执行该通知脚本,避免返回不全的测试数据
替代简化方案
如果不需要附加测试报告,也可以直接修改Azure DevOps项目内的Slack Service Hook配置,自定义发布完成通知的负载模板,插入测试结果相关的系统变量,无需编写额外脚本,但自定义程度相对较低。
内容的提问来源于stack exchange,提问作者Mrks
相关产品推荐
相关产品推荐

