如何通过Azure DevOps REST API获取构建的测试运行/失败数量?
获取构建测试运行/失败数量的REST API方案
嘿,这个问题我刚好之前摸索过,其实完全可以通过你手里的build ID来获取对应的测试统计数据,不用先拿到test run ID。下面分场景给你具体的思路和操作方式:
Azure DevOps 场景
如果是用Azure DevOps的话,有专门的API可以通过build ID关联到测试运行列表,再提取统计数据:
- 查询测试运行列表:调用这个接口就能拿到该build下所有的测试运行条目:
每个返回的测试运行对象里,会包含GET https://dev.azure.com/{organization}/{project}/_apis/test/runs?buildId={你的buildId}&api-version=7.1-preview.3totalTests(总测试运行数)和failedTests(失败数)这两个核心字段。 - 精简返回数据:要是不想获取冗余字段,可以用
$select参数过滤,只拿需要的统计值:GET https://dev.azure.com/{organization}/{project}/_apis/test/runs?buildId={你的buildId}&$select=totalTests,failedTests&api-version=7.1-preview.3 - 汇总统计:如果需要整个build的总测试数和失败数,只需要把所有测试运行条目的对应数值累加就行。
GitLab CI 场景
如果是GitLab的话,更直接,有一个接口能直接返回构建的测试报告汇总:
GET /projects/:项目ID/builds/:你的buildId/test_report
这个接口的返回结果里直接包含total(总测试数)、failed(失败数)、passed(通过数)等统计数据,一步就能拿到你要的信息。
通用思路(其他CI/CD平台)
不管你用的是Jenkins还是其他工具,核心逻辑都是一致的:
- 先找平台提供的通过build ID关联测试资源的API接口;
- 从返回的测试运行/报告数据中提取总运行数、失败数这类统计字段;
- 如果需要汇总,就对多个测试运行的数值进行累加。
需要注意的是不同平台的API版本和参数可能有细微差异,建议查一下对应平台的官方文档确认细节,但整体路径都是通的~
内容的提问来源于stack exchange,提问作者Techromancer
相关产品推荐
相关产品推荐

