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

如何从Azure DevOps测试用例中触发DevOps流水线?

从Azure DevOps测试用例触发流水线的解决方案

Azure DevOps原生没有直接关联测试用例与流水线的功能,以下是几种可行的变通方案:

方案一:通过测试步骤/自动化测试代码调用REST API触发流水线

这是最直接的实现方式,利用Azure DevOps的REST API触发流水线,可集成到手动测试步骤或关联的单元测试代码中:

  1. 准备触发流水线的核心信息

    • 流水线ID:从Azure DevOps流水线页面的URL中提取(如https://dev.azure.com/xxx/xxx/_build?definitionId=123里的123)
    • PAT令牌:生成权限包含**Build (Read & Execute)**的个人访问令牌,用于API身份验证
  2. 编写触发脚本/代码
    以下PowerShell脚本可直接在手动测试步骤中执行,或嵌入到自动化测试代码里:

    # 替换为你的实际信息
    $orgName = "你的组织名称"
    $projName = "你的项目名称"
    $pipelineId = "123"
    $patToken = "你的PAT令牌"
    
    # 构建认证头
    $base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$patToken"))
    $headers = @{ Authorization = "Basic $base64Auth" }
    
    # 定义流水线触发参数(可按需修改分支、自定义变量)
    $triggerParams = @{
        resources = @{
            repositories = @{
                self = @{ refName = "refs/heads/main" }
            }
        }
        variables = @{
            # 示例:添加自定义流水线变量
            # "testEnv" = @{ value = "staging" }
        }
    } | ConvertTo-Json
    
    # 调用API触发流水线
    Invoke-RestMethod -Uri "https://dev.azure.com/$orgName/$projName/_apis/pipelines/$pipelineId/runs?api-version=7.1-preview.1" `
        -Method Post `
        -Headers $headers `
        -Body $triggerParams `
        -ContentType "application/json"
    
  3. 集成到测试用例

    • 手动测试用例:在测试步骤中添加执行上述脚本的操作,测试人员运行时即可触发流水线
    • 自动化测试用例:将API调用逻辑嵌入到关联的单元测试代码中(如C#用HttpClient实现),测试执行时自动触发流水线

方案二:通过测试计划/套件的自动化任务关联

如果需要在测试计划执行流程中触发流水线,可借助Azure DevOps发布流水线实现:

  • 创建发布流水线,添加"触发流水线"任务(调用上述REST API)
  • 将发布流水线与测试计划的执行事件绑定(比如测试套件开始执行时自动触发发布流水线)

方案三:开发自定义Azure DevOps扩展(进阶)

如果需要更原生的界面集成(比如在测试用例页面添加专属的"触发流水线"按钮),可基于Azure DevOps扩展SDK开发自定义扩展,实现点击按钮直接调用API触发指定流水线。

注意事项

  • PAT令牌不要硬编码,建议存储在Azure DevOps变量组或安全密钥库中
  • 确保测试运行环境具备访问Azure DevOps API的网络权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:16:14