如何通过Azure DevOps REST API匹配手动Test Case步骤与Test Run结果?
解决TFS Test API中测试步骤与结果匹配的问题(含共享步骤场景)
要解决步骤顺序不符和共享步骤的匹配问题,核心是靠步骤层级路径来关联,而非依赖返回结果的顺序,具体操作如下:
1. 获取测试用例的完整步骤结构(展开共享步骤)
你需要先拿到测试用例的原始步骤,包括嵌套的共享步骤,才能生成对应的匹配路径:
- 调用工作项API获取测试用例详情(需包含关联的共享步骤):
GET http://myserver.is.mycompany.net:8080/tfs/MyCollection/LMTest/_apis/wit/workitems/{testCaseId}?api-version=5.1&$expand=relations - 从返回的
relations数组中,筛选类型为System.LinkTypes.Hierarchy-Reverse的条目,这些就是关联的共享步骤工作项。 - 针对每个共享步骤,单独调用工作项API获取它的步骤字段
Microsoft.VSTS.TCM.Steps(该字段为XML格式),把共享步骤的内容展开到测试用例的步骤列表中,严格保持原始层级顺序。
2. 用actionPath字段做精准匹配
你当前调用的测试结果API返回的actionResults里,每个结果条目都有actionPath属性,这是步骤的唯一层级标识:
- 普通步骤的路径格式为
/1、/2,对应测试用例的第1、第2步 - 共享步骤里的子步骤路径为
/2/1、/2/2,对应测试用例第2步(共享步骤)下的第1、第2子步骤 - 把你展开后的完整步骤列表,按照同样规则生成层级路径,然后通过
actionPath字段与步骤路径一一对应,完全不依赖actionResults的返回顺序。
3. 提取报告所需信息
匹配成功后,直接从对应的actionResult条目中提取内容:
- 测试结果:从
outcome字段获取(对应Passed/Failed等状态) - 评论:从
comment字段提取 - 附件:从
attachments数组中获取附件名称、大小或下载链接
注意事项
- 如果共享步骤还有嵌套的共享步骤,需要递归展开,确保所有层级的步骤都生成正确路径
- 解析
Microsoft.VSTS.TCM.Steps字段时,要把XML转成结构化的步骤对象,方便生成路径和提取步骤描述/预期结果
内容的提问来源于stack exchange,提问作者Evgeny
相关产品推荐
相关产品推荐

