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

Xray Cloud与Azure DevOps集成场景下,手动触发自动化工作流时的测试用例检索方法及架构咨询

Xray Cloud与Azure DevOps集成场景下,手动触发自动化工作流时的测试用例检索方法及架构咨询

问题背景

我目前在使用Atlassian托管的Xray Cloud + Jira Cloud(非自托管),想要实现一个手动触发的自动化工作流:

目标架构

  • 新版本部署到预生产环境
  • 创建测试计划(Test Plan)
  • 为测试计划添加多个测试执行(Test Execution),每个测试执行包含多个测试用例(Test Case)
  • Jira用户手动触发针对特定测试执行的自动化规则,完成以下操作:
    • 检索该测试执行关联的所有测试用例
    • 提取每个测试用例的自定义字段(External ID)
    • 构建逗号/竖线分隔的字符串参数
    • 将参数发送至Azure DevOps流水线
  • Azure DevOps流水线执行完成后,将测试结果通过测试执行的Issue ID回传至对应测试执行

当前问题

我无法可靠地检索到特定测试执行关联的测试用例,尝试过JQL查询、Jira REST API、AI建议的多种方法,但都没有得到预期结果。

我的疑问

  1. 在Xray Cloud中,通过自动化或REST API检索特定测试执行关联的所有测试用例的正确方式是什么?
  2. 我的整体架构(测试计划→测试执行→手动触发→Azure DevOps→结果回传至测试执行)是否合理?
  3. Xray Cloud与Azure DevOps流水线有没有更优或更标准的集成模式?

专业解答

1. 检索特定测试执行关联测试用例的正确方法

针对Xray Cloud,有两种稳定可靠的实现方式,分别适配自动化规则和REST API场景:

方式一:Jira自动化规则中检索

在Jira Automation的手动触发规则中(触发事件选择「Manual trigger on issue」,目标问题类型指定为「Test Execution」),可以按以下步骤操作:

  • 添加「Lookup issues」动作,在JQL输入框中使用Xray专属的关联查询语句:
    "Test Execution" = {{issue.key}}
    
    这个JQL会精准返回所有与当前触发的测试执行({{issue.key}}为当前测试执行的唯一Key)关联的测试用例。
  • 后续可以通过「Loop through issues」动作遍历查询到的测试用例,提取「External ID」自定义字段,拼接成需要的字符串参数。

如果需要快速获取测试用例列表,也可以直接使用Xray的内置智能值{{issue.fields.xray.testCases}},但需要注意对返回的列表格式做简单处理。

方式二:Xray Cloud REST API检索

不要使用Jira通用REST API,而是调用Xray专属的测试执行端点,这是官方推荐的稳定方案:

  • 端点:GET https://xray.cloud.getxray.app/api/v2/testexecutions/{testExecutionKeyOrId}/testcases
  • 认证:使用Jira Cloud基础认证,请求头携带Authorization: Basic <Base64编码的邮箱:API Token>,以及Content-Type: application/json
  • 响应说明:返回的JSON数组包含每个测试用例的完整数据,你可以直接从中提取「External ID」等自定义字段。

2. 整体架构的合理性评估

你的整体架构非常合理,且符合Xray的最佳实践,理由如下:

  • 分层清晰:Test Plan用于对齐测试范围和版本,Test Execution对应单次独立的测试运行,手动触发完全适配预生产环境按需执行的灵活需求;
  • 闭环可追溯:从触发流水线到结果回传,所有测试动作和结果都与具体的Test Execution绑定,保证了测试链路的全可追溯性;
  • 松耦合设计:通过字符串参数和Issue ID实现Xray与Azure DevOps的交互,双方仅依赖简单的标识和参数,便于后续维护和扩展。

小优化建议:如果未来需要支持批量触发多个Test Execution,可以在Test Plan上添加手动触发规则,批量获取所有关联的Test Execution并依次触发流水线,但当前的单Test Execution触发模式完全满足你的需求。

3. Xray Cloud与Azure DevOps的标准集成模式

除了你当前的架构,还有几种官方推荐的标准集成模式可以参考:

模式一:Xray官方Azure DevOps集成插件

Xray提供了Azure DevOps的官方集成扩展,能大幅减少自定义开发量:

  • 触发流水线时可自动关联Xray的Test Execution或Test Plan;
  • 使用Xray CLI工具在流水线执行完成后,一键将测试结果上传至对应的Test Execution;
  • 支持从Azure DevOps同步测试用例到Xray,实现双向用例管理。

模式二:Webhook驱动的自动化集成

如果需要标准化测试流程、减少人工操作,可以将手动触发改为状态驱动的自动触发:

  1. 在Jira Automation中设置规则:当Test Execution的状态变为「Ready for Automation」(可自定义状态)时,自动触发Azure DevOps流水线;
  2. 流水线执行完成后,通过Xray API将结果回传,并将Test Execution的状态更新为「Completed」。

模式三:Test Set分组的精细化集成

如果你的测试用例需要按业务模块或场景分组,可以在Xray中使用「Test Set」管理测试用例,再将Test Set关联到Test Execution。这种模式下,触发流水线时可以按Test Set传递参数,实现更精细化的测试执行控制,尤其适合大型项目的测试管理。


备注:内容来源于stack exchange,提问作者Swap-IOS-Android

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:12:57