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

如何在Azure DevOps流水线中通过用例名动态添加TestCase至TestSuite

测试自动化框架与Azure Test Plan集成的流水线全自动化优化方案

我们正在通过Azure DevOps流水线将测试自动化框架与Azure Test Plan集成,已将核心步骤转换为Bash脚本并支持通过输入参数planName、suiteName、caseName动态获取测试计划ID(步骤1)和测试套件ID(步骤2)。但当前流程存在卡点:步骤3获取测试用例ID前需手动将测试用例添加至测试套件,无法实现全自动化。需在步骤2与步骤3之间新增自动将测试用例添加至测试套件的任务,打通全流程。


完整自动化步骤(含新增任务)

1. 获取测试计划ID

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans?api-version=5.0
  • 请求方法:GET
  • 提取测试计划ID的JsonPath:$.value.[?(@.name == 'yourPlanName')].id

2. 获取测试套件ID

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites?api-version=5.0
  • 请求方法:GET
  • 提取测试套件ID的JsonPath:$.value.[?(@.name == 'yourSuiteName')].id
  • 依赖:planID来自步骤1

新增任务:自动将测试用例添加至测试套件

2.1 通过测试用例名称获取测试用例ID

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/wit/workitems?$expand=Relations&api-version=7.1-preview.3
  • 请求方法:GET
  • 请求参数:添加查询参数 $filter=System.Title eq 'yourTestCaseName' and System.WorkItemType eq 'Test Case'
  • 提取测试用例ID的JsonPath:$.value[0].id

2.2 将测试用例添加到指定测试套件

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites/suiteID/testcases?api-version=5.0
  • 请求方法:POST
  • Content-Type:application/json
  • 请求体示例:
{
  "testCaseIds": [tcID]
}
  • 依赖:planID来自步骤1,suiteID来自步骤2,tcID来自子步骤2.1

3. 获取测试用例ID(验证用例已添加)

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites/suiteID/points?api-version=5.0
  • 请求方法:GET
  • 提取测试用例ID的JsonPath:$..[?(@.name == 'yourTestCaseName')].id
  • 依赖:planID来自步骤1,suiteID来自步骤2

4. 获取测试点ID

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/plans/planID/suites/suiteID/points?testCaseId=tcID&api-version=5.0
  • 请求方法:GET
  • 提取测试点ID的JsonPath:$.value.[0].id
  • 依赖:planID来自步骤1,suiteID来自步骤2,tcID来自步骤3

5. 创建测试运行

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/runs?api-version=5.0
  • 请求方法:POST
  • Content-Type:application/json
  • 请求体示例:
{"name":"runName","plan":{"id":planID},"pointIds":[pointID]}
  • 提取测试运行ID的JsonPath:$.id
  • 依赖:planID来自步骤1,pointID来自步骤4

6. 获取测试结果ID

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/runs/runID/results?api-version=6.0-preview.6
  • 请求方法:GET
  • 提取测试结果ID的JsonPath:$.value.[0].id
  • 依赖:runID来自步骤5

7. 更新测试运行结果

  • 接口地址:https://dev.azure.com/yourOrganizationName/yourProjectName/_apis/test/runs/runID/results?api-version=6.0-preview.6
  • 请求方法:PATCH
  • Content-Type:application/json
  • 用例通过时请求体示例:
[{ "id": resultID ,  "outcome": "PASSED" ,"state": "Completed",    "comment": "执行成功"  }]
  • 用例失败时请求体示例:
[{ "id": resultID ,  "outcome": "FAILED" ,"state": "Completed",    "comment": "执行失败", "associatedBugs": [{"id":bugID}]}]
  • 依赖:runID来自步骤5,resultID来自步骤6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:45:34