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

能否将Jenkins Pipeline各阶段作为Xray测试计划中的独立测试用例?

方案可行性确认与最优实现方式

完全可行,而且不需要为每个测试单独创建Jenkins Pipeline,现有单Pipeline多阶段的模式就能实现需求,以下是具体思路和步骤:

一、核心可行性说明

Xray官方与Jenkins的集成方案原生支持多测试场景的结果导入,无论是单Pipeline多阶段还是多Pipeline,都能将测试结果映射到Xray测试计划中的指定测试用例,不需要拆分现有Pipeline结构。

二、最优实现步骤

1. 前置准备(Xray端)

  • 在Xray中创建目标测试计划,然后为Jenkins Pipeline的每个测试阶段单独创建对应测试用例,并将这些用例关联到该测试计划;
  • 记录每个测试用例的唯一标识(如Xray自动生成的用例Key,例如TEST-123),后续用于和Pipeline阶段的测试结果做映射。

2. Jenkins端配置

  • 安装Jenkins的Xray插件(在Jenkins插件市场搜索“Xray for Jira”);
  • 在Jenkins全局配置中,添加Xray的服务器信息(Jira/Xray的访问地址)、认证凭据(API Token或账号密码),确保Jenkins能正常访问Xray。

3. 修改现有Pipeline脚本

在每个测试阶段执行完成后,生成带有Xray用例标识的测试报告(推荐用JUnit格式,Xray对其支持最好),然后在Pipeline末尾统一调用Xray插件导入结果。

示例Pipeline片段:

pipeline {
    agent any
    stages {
        stage('测试场景1:用户登录') {
            steps {
                // 执行登录测试脚本,生成带用例Key的JUnit报告
                sh './run_login_test.sh --xray-key TEST-123'
            }
            post {
                always {
                    junit 'reports/login_test.xml' // 归档测试报告
                }
            }
        }
        stage('测试场景2:商品下单') {
            steps {
                sh './run_order_test.sh --xray-key TEST-124'
            }
            post {
                always {
                    junit 'reports/order_test.xml'
                }
            }
        }
    }
    post {
        always {
            // 调用Xray插件导入所有测试报告,关联到指定测试计划
            xrayImportTestResults(
                testPlanKey: 'PLAN-456', // 目标测试计划的Key
                testExecutionKey: '', // 可选,若需指定测试执行可填写
                junit: 'reports/**/*.xml', // 所有测试报告的路径
                importToSameExecution: true // 将所有结果合并到同一个测试执行中
            )
        }
    }
}

注:测试脚本需要保证生成的JUnit报告中,测试用例的name字段包含Xray的用例Key(比如TEST-123: 用户登录测试),这样Xray才能自动匹配到对应的用例。

4. 结果验证

Pipeline执行完成后,登录Xray查看目标测试计划,就能看到每个测试阶段的结果已经同步到对应的测试用例中。

三、进阶方案(自动创建测试用例)

如果不想提前在Xray手动创建测试用例,也可以在Pipeline中通过Xray的API自动创建用例并关联到测试计划,然后再导入结果。例如在测试阶段前添加步骤调用Xray API:

sh '''
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_TOKEN" \
"https://your-jira-url/rest/raven/1.0/api/testcase" \
-d '{
    "fields": {
        "project": {"key": "PROJ"},
        "summary": "用户登录测试",
        "description": "Jenkins Pipeline自动创建的测试用例",
        "issuetype": {"name": "Test"}
    }
}'
'''

然后将返回的用例Key传递给后续测试脚本,生成对应报告即可。

四、参考文档核心内容(中文翻译)

Xray与Jenkins集成支持JUnit、TestNG、Cucumber等多种主流测试报告格式的导入,可将Jenkins中的测试结果同步至Xray的测试计划、测试执行模块;支持两种集成方式:Jenkins插件(配置简单、快速上手)和API调用(灵活性高、支持复杂场景);可配置自动触发同步逻辑,例如Pipeline执行完成后自动导入测试结果,无需手动操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:36:25