Azure DevOps API技术问询:获取指定测试用例的所有运行详情(支持测试计划ID与测试套件ID参数)
获取特定测试用例的所有Azure DevOps测试运行记录
嘿,没问题!确实有办法拿到特定测试用例的所有运行记录,而不只是最后一次的。我来给你拆解具体的实现步骤,亲测有效:
核心思路:用测试结果API直接筛选
你可以直接使用Azure DevOps的测试结果列表API,通过组合筛选条件,精准定位到指定测试计划、测试套件下某测试用例的所有运行记录。相比先查测试运行再过滤,这个方法更高效直接。
1. API请求格式
基础请求URL如下,替换掉括号里的占位符:
GET https://dev.azure.com/{organization-name}/{project-name}/_apis/test/results?api-version=6.0&$filter=testCaseId eq {test-case-id} and testPlanId eq {test-plan-id} and testSuiteId eq {test-suite-id}
2. 关键筛选参数说明
$filter参数是核心,这里组合了三个必要条件:
testCaseId eq {test-case-id}:指定你要查询的测试用例IDtestPlanId eq {test-plan-id}:限定测试计划范围testSuiteId eq {test-suite-id}:限定测试套件范围
3. 示例请求(curl)
如果用curl调用,示例如下(记得替换个人访问令牌和占位信息):
curl -u "your-username:your-pat-token" "https://dev.azure.com/MyOrg/MyProject/_apis/test/results?api-version=6.0&$filter=testCaseId eq 1234 and testPlanId eq 567 and testSuiteId eq 890"
4. 补充:获取完整测试运行详情
如果需要每个运行的完整上下文(比如运行的名称、创建时间、关联的构建等),可以从返回的测试结果里提取runId,再调用测试运行详情API:
GET https://dev.azure.com/{organization-name}/{project-name}/_apis/test/runs/{runId}?api-version=6.0
注意事项
- 确保你的个人访问令牌(PAT)拥有Test Management的读取权限
- 如果返回结果过多,可以添加
$top和$skip参数进行分页(比如&$top=100&$skip=0) - 筛选条件里的运算符要严格使用
eq(等于),不要用其他符号,Azure DevOps的OData筛选语法要求这样
之前你看到的只返回最新运行记录的情况,大多是示例只做了简单查询,没有添加完整的筛选条件。用上面的方法就能轻松拿到目标测试用例的所有历史运行记录啦!
内容的提问来源于stack exchange,提问作者Jay K
相关产品推荐
相关产品推荐

