如何通过Azure DevOps流水线自动创建测试计划并上传CSV/Excel测试用例
Azure DevOps 测试计划自动创建与测试用例批量上传流水线搭建指南
适用场景
可通过该流水线实现CSV、Excel格式存储的测试用例自动上传到指定测试计划,无需手动逐条录入。
1 创建流水线
- 进入目标Azure DevOps项目,依次点击左侧菜单栏「管道」-「新建管道」,选择团队使用的代码存储源,选择「空作业」模板完成初始流水线创建。
- 给流水线配置测试管理权限:进入项目设置-「管道」-「服务连接」,给对应服务账号授予测试计划的读写权限,或者直接在流水线变量中开启
Allow scripts to access the OAuth token选项,后续调用接口可以直接用内置的System.AccessToken鉴权。
注意:权限配置是后续操作的前提,一定要提前配置完成避免接口调用报错
2 存储测试用例文件
- 将整理好的CSV/Excel测试用例文件存到流水线关联的代码仓库根目录,或者存到项目的工件库中,确保流水线运行时可正常读取文件。
- 提前统一文件字段格式,必填字段建议固定为「测试用例标题」「操作步骤」「预期结果」「优先级」,减少后续脚本适配成本。
3 自动创建测试计划
- 在流水线中添加PowerShell任务,调用Azure DevOps REST API创建测试计划,核心代码示例:
$header = @{Authorization = "Bearer $(System.AccessToken)"} $body = @{ name = "迭代XX测试计划" areaPath = "你的项目区域路径" iteration = "你的迭代路径" } | ConvertTo-Json $planResponse = Invoke-RestMethod -Uri "https://dev.azure.com/组织名/项目名/_apis/test/plans?api-version=7.1-preview.1" -Method Post -Headers $header -Body $body -ContentType "application/json" # 存储测试计划ID到流水线变量 Write-Host "##vso[task.setvariable variable=testPlanId]$($planResponse.id)"
- 运行后会自动创建测试计划,同时把生成的测试计划ID存为全局变量,供后续上传测试用例调用。
4 批量上传测试用例到对应测试计划
- 如果你用的是Excel格式文件,先在PowerShell任务中安装导入
ImportExcel模块:Install-Module -Name ImportExcel -Force -Scope CurrentUser,CSV文件可以直接用内置的Import-Csv命令读取。 - 遍历读取测试用例文件的每一行数据,调用测试用例创建接口关联对应测试计划即可,核心逻辑示例:
# 读取Excel文件 $testCases = Import-Excel -Path "./测试用例.xlsx" # 循环导入 foreach ($case in $testCases) { $caseBody = @{ workItemType = "Test Case" fields = @{ "System.Title" = $case.测试用例标题 "Microsoft.VSTS.TCM.Steps" = "<steps><step id=""1"" action=""$($case.操作步骤)"" expectedResult=""$($case.预期结果)""/></steps>" "Microsoft.VSTS.Common.Priority" = $case.优先级 } } | ConvertTo-Json # 创建测试用例并关联测试计划 Invoke-RestMethod -Uri "https://dev.azure.com/组织名/项目名/_apis/test/plans/$(testPlanId)/suites/$(testPlanId)/testcases?api-version=7.1-preview.3" -Method Post -Headers $header -Body $caseBody -ContentType "application/json-patch+json" }
- 可以在脚本最后添加校验逻辑,统计导入成功和失败的测试用例数量,输出到流水线日志中方便排查异常。
内容的提问来源于stack exchange,提问作者Abhinandan
相关产品推荐
相关产品推荐

