如何用C#调用REST API将Azure Test Plans测试用例添加至测试套件?
解决Azure Test Plans中用C#将测试用例添加到测试套件的问题
错误原因分析
你当前的代码问题在于API端点路径错误,并且请求体不符合接口要求:
- 错误地将测试用例ID(testCaseId)放在URL路径末尾,而Azure DevOps的该API要求通过请求体传递测试用例ID
- 请求体传了空内容,接口需要接收包含测试用例ID列表的JSON数据
正确实现代码
以下是修正后的完整代码:
using System.Net.Http; using System.Text; using System.Text.Json; // 构造正确的API端点(不要把testCaseId放在URL里) string addToSuiteUrl = $"{azureDevOpsOrganizationUrl}{project}/_apis/testplan/plans/{testPlanId}/suites/{testSuiteId}/testcases?api-version=7.1"; // 构造请求体:传入包含testCaseIds的对象,支持批量添加 var requestBody = new { testCaseIds = new[] { testCaseId } }; string jsonBody = JsonSerializer.Serialize(requestBody); var suiteContent = new StringContent(jsonBody, Encoding.UTF8, "application/json"); // 发送POST请求 var suiteResponse = await client.PostAsync(new Uri(addToSuiteUrl), suiteContent); // 验证请求结果 if (suiteResponse.IsSuccessStatusCode) { string responseContent = await suiteResponse.Content.ReadAsStringAsync(); // 处理返回的测试用例关联信息 } else { string errorContent = await suiteResponse.Content.ReadAsStringAsync(); // 处理错误信息 }
关键注意事项
- 确保你的HttpClient已配置正确身份验证(如Personal Access Token),权限需包含Test Plans (Read & Write)
- API版本
7.1为当前稳定版本,可根据需求调整为最新兼容版本 - 请求体中的
testCaseIds是数组类型,可直接添加多个ID实现批量关联测试用例
内容的提问来源于stack exchange,提问作者vasut alexandru
相关产品推荐
相关产品推荐

