如何将Postman测试结果关联至Azure Test Plans测试用例
解决Postman测试结果与Azure Test Plans测试用例关联的问题
核心思路:让ADO能识别测试用例的关联标识
ADO默认不会自动解析测试名称里的用例ID,得通过修改JUnit报告结构或者配置管道任务的映射规则来实现关联。
方法1:修改Postman测试脚本,生成带关联标识的JUnit报告
Postman的Newman工具支持自定义JUnit报告的属性,你可以在测试脚本里注入测试用例ID,让生成的XML报告包含ADO能识别的字段:
- 单测试用例场景:直接在Newman命令里指定用例ID属性
newman run 你的集合文件.json --reporter junit --reporter-junit-export results.xml --reporter-junit-property testCaseId=97 - 批量测试场景:用Postman的环境变量动态传递ID,比如在集合的预请求脚本里设置
pm.environment.set("testCaseId", "97"),然后在Newman命令里引用:newman run 你的集合文件.json --env-var testCaseId=97 --reporter junit --reporter-junit-export results.xml --reporter-junit-property testCaseId={{testCaseId}}
方法2:在ADO发布管道里配置测试结果映射规则
- 找到管道中的Publish Test Results任务,格式选JUnit
- 展开Advanced选项,找到Test case mapping区域
- 配置映射规则:
- 如果测试名称里有固定格式的ID(比如
[97] xxx),可以用正则表达式匹配,在Test case filter里填\[(\d+)\],把匹配到的数字作为测试用例ID关联 - 如果用了方法1的自定义属性,直接指定属性名
testCaseId,ADO会自动读取该值关联对应ID的测试用例
- 如果测试名称里有固定格式的ID(比如
方法3:用ADO REST API手动关联
要是前面的方法不好使,加个PowerShell任务调用API强制关联:
- 先从
Publish Test Results任务的输出变量里拿到测试运行ID - 调用接口更新测试结果的关联信息,示例请求(替换占位符):
注意:管道的服务账号得有Test Plans的编辑权限才能操作。$org = "你的组织名" $proj = "你的项目名" $runId = "测试运行ID" $testCaseId = "97" $pat = "你的PAT令牌" $body = @{ testCase = @{ id = $testCaseId project = @{ id = "项目ID" } } } | ConvertTo-Json Invoke-RestMethod -Uri "https://dev.azure.com/$org/$proj/_apis/test/Runs/$runId/results?api-version=7.1-preview.6" -Method Post -Headers @{Authorization = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$pat")))"} -Body $body -ContentType "application/json"
内容的提问来源于stack exchange,提问作者Ondřej Domský
相关产品推荐
相关产品推荐

