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

如何从X-Ray Jenkins插件获取创建的Jira工单ID?

获取X-Ray Jenkins插件导入后的Jira工单ID方案

方法1:尝试捕获插件返回值(部分版本支持)

检查当前使用的X-Ray Jenkins插件版本,部分较新的版本中,XrayImportBuilder步骤会直接返回导入结果的JSON对象,可直接从中提取工单ID。示例代码:

def importResult = step([$class: 'XrayImportBuilder', endpointName: '/multipart', importFilePath: 'result.json', importInfo: 'info.json', inputInfoSwitcher: 'filePath', serverInstance: 'my-server-instance-value'])
def issueId = importResult.issues[0].id // 需根据实际返回的JSON结构调整字段路径
echo "创建的工单ID:${issueId}"

如果当前版本不支持返回值,可尝试升级到插件的最新稳定版再测试。

方法2:绕开插件,直接调用X-Ray REST API

不用Jenkins插件,直接用Groovy调用X-Ray的API完成导入,这样能直接获取API响应数据提取工单ID。步骤如下:

  1. 读取本地result.json和info.json的内容
  2. 构造multipart请求发送到X-Ray的/multipart端点
  3. 解析响应JSON提取工单ID

示例代码片段(需依赖Jenkins的HTTP Request Plugin):

// 读取本地测试结果文件
def resultContent = readFile(file: 'result.json')
def infoContent = readFile(file: 'info.json')

// 发送请求到X-Ray API(需提前在Jenkins配置Jira访问凭证)
def response = httpRequest(
    url: 'https://你的Jira实例地址/rest/raven/1.0/import/multipart',
    httpMode: 'POST',
    authentication: '你的Jira凭证ID',
    multipartName: 'result',
    multipartFile: resultContent,
    additionalParameters: [info: infoContent]
)

// 解析响应获取工单ID
def responseJson = new groovy.json.JsonSlurper().parseText(response.content)
def issueId = responseJson.issues[0].id
echo "创建的工单ID:${issueId}"

方法3:预创建工单并指定Key(业务允许时使用)

如果业务场景支持,可先通过Jira API创建一个空的测试执行工单,拿到其ID/Key后,在info.json中指定这个Key,导入时会直接将结果关联到该工单,无需从插件输出提取ID。

示例info.json配置:

{
  "fields": {
    "project": {
      "key": "你的项目Key"
    },
    "summary": "测试执行结果汇总",
    "issuetype": {
      "name": "Test Execution"
    }
  },
  "testExecutionKey": "PROJ-1234" // 预创建的工单Key
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:54:55