将自动化测试结果附加到松弛消息

Attaching automation test results to slack message

我目前正在 运行对 azure devops 发布管道进行自动化(UI 和 API)测试。 每当测试 运行 完成时,我都会收到通知:

现在只有一种方法可以查看 运行 后的测试结果: 您可以单击 Release 热链接,您将被重定向到完整版本 运行 信息和测试结果 。 现在我的问题是:是否可以以某种方式自定义发行说明? 例如,我喜欢将测试结果附加到松弛消息中。沿线的东西:

TestResults:
Passed: 13
Failed: 2

或者以某种方式附加测试后生成的 .trx/.html 文件 运行。这样我就可以轻松查看结果,而无需单击发布热链接。

也许可以使用 GET 运行列表 API 方法提取测试结果?

如有任何帮助,我们将不胜感激。谢谢!

您可以使用 powershell 脚本解析结果文件(例如:trx),获取测试运行详细信息,post 通过 rest api or PostSlackNotification 任务到 slack 频道。

例如:查看log中的trx文件:

添加一个新的 powershell 脚本任务来解析测试运行细节:

#get the path of the trx file from the output folder.
$path = Get-ChildItem -Path $(Agent.TempDirectory)\TestResults -Recurse -ErrorAction SilentlyContinue -Filter *.trx |  Where-Object { $_.Extension -eq '.trx' }

$appConfigFile = $path.FullName  #path to test result trx file 

$appConfig = New-Object XML 
$appConfig.Load($appConfigFile) 
$testsummary = $appConfig.DocumentElement.ResultSummary.Counters | select total, passed, failed, aborted

echo $testsummary   # check testsummary

echo "##vso[task.setvariable variable=testSummary]$($testsummary)" #set the testsummary to environment variable

得到试运行结果如下:

发布到松弛频道:

有一个 npm 包可以将测试结果发布回 microsoft teams 或 slack。

https://www.npmjs.com/package/test-results-reporter

您需要创建一个传入 webhook 和一个简单的配置文件才能开始。

在您的管道 yaml 文件中添加以下命令。

- script: npx test-results-reporter publish -c config.json