You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps GET API按阶段列出多阶段自动化测试运行结果?

解决多阶段流水线测试运行结果关联与按阶段列出的方法

步骤1:获取目标流水线的构建ID

调用以下API获取指定流水线的构建列表,提取需要查询的构建runId:

GET /_apis/pipelines/{pl_def_id}/runs?api-version=7.1-preview.1

步骤2:获取该构建关联的所有测试运行

直接通过构建ID获取关联的测试运行,无需全局查询后过滤:

GET /_apis/build/builds/{runId}/testruns?api-version=7.1-preview.1

返回的每个测试运行条目包含id(测试运行ID)、name等基础信息,用于后续关联阶段。

步骤3:获取构建时间线匹配阶段与测试任务

调用构建时间线API,获取所有阶段、作业、任务的层级关系:

GET /_apis/build/builds/{runId}/timeline?api-version=7.1-preview.1

在返回的records数组中:

  • 筛选type为Stage的记录,得到每个阶段的id、name及其关联的作业信息;
  • 筛选type为Task且名称包含测试任务标识(如VSTest、Publish Test Results)的记录,提取该任务所属的parentId(即作业ID),再通过作业ID关联到对应阶段。

步骤4:关联测试运行与阶段

步骤2得到的测试运行数据中,每个测试运行的properties字段包含Microsoft.VSTS.TCM.JobId属性,该值对应步骤3中测试任务所属的作业ID。按以下逻辑完成关联:

  1. 从时间线数据中构建「作业ID → 阶段名称/ID」的映射表;
  2. 遍历每个测试运行,用其JobId查找映射表,得到所属阶段,最终按阶段分组整理测试结果。

补充说明

若直接调用/_apis/test/runs,可添加buildUri参数过滤指定构建的测试运行,buildUri格式为vstfs:///Build/Build/{runId},示例:

GET /_apis/test/runs?buildUri=vstfs:///Build/Build/{runId}&api-version=7.1-preview.1

该方式与步骤2的API效果一致,可按需选择。

内容的提问来源于stack exchange,提问作者djangofan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 02:55:42