Xray Jira Cloud集成Github Actions:测试用例状态更新与参数传递问题
GitHub Actions与Xray Jira集成问题解答
问题1:如何将测试用例(testKey)的详情传递给GitHub Actions工作流?
有两种可行方案:
通过Jira自动化Webhook传递:在Jira触发GitHub Actions的自动化规则中,配置Webhook的payload时,用Jira Smart Values提取测试用例的详情(比如key、名称、测试步骤等)。示例payload可包含:
{ "testExecutionKey": "{{issue.key}}", "testCases": [ {"key": "{{testCase.key}}", "summary": "{{testCase.summary}}"} ] }在GitHub Actions工作流中,通过
${{ github.event.testCases }}接收这些详情。在工作流中调用Jira API获取:如果触发时未传递详情,可在工作流里通过Jira API,以测试执行的key查询关联的测试用例详情。示例命令:
curl -H "Authorization: Bearer $token" \ "https://xyz.atlassian.net/rest/api/2/issue/${TEST_EXEC_KEY}?fields=customfield_12345"其中
customfield_12345是Xray中关联测试用例的自定义字段ID,需替换为你环境中的实际ID。
问题2:导入Xray JSON结果后,测试用例状态未更新
从你提供的信息来看,问题出在以下几个关键点:
1. 状态值不符合Xray Cloud规范
Xray Cloud要求测试结果状态值为PASSED/FAILED,而你的data.json中用的是PASS,这会导致状态无法被识别。
2. 测试用例未关联到目标测试执行
如果测试用例(XYZ-236、XYZ-231)还未添加到测试执行XYZ-244中,导入时不会自动关联,因此结果不会显示。需在data.json中添加"addTests": true字段,让Xray自动将测试用例关联到执行。
修正后的data.json示例:
{ "testExecutionKey": "XYZ-244", "addTests": true, "info": { "summary": "Execution of automated tests for release", "description": "This execution is automatically created when importing execution results from an external source", "startDate": "2025-01-07T11:58:48Z", "finishDate": "2025-01-07T11:58:48Z" }, "tests": [ { "testKey": "XYZ-236", "start": "2025-01-07T11:58:48Z", "finish": "2025-01-07T11:58:48Z", "comment": "Successful execution", "status": "PASSED" }, { "testKey": "XYZ-231", "start": "2025-01-07T11:58:48Z", "finish": "2025-01-07T11:58:48Z", "comment": "Successful execution", "status": "PASSED" } ] }
3. 验证API权限
确保你的$token拥有编辑测试执行和更新测试结果的权限,否则Xray会静默忽略状态更新请求。
重新执行导入命令
用修正后的data.json重新执行curl命令即可:
curl -H "Content-Type: application/json" -X POST -H "Authorization: Bearer $token" --data @"data.json" https://xray.cloud.getxray.app/api/v2/import/execution
内容的提问来源于stack exchange,提问作者Shriya Kulkarni
相关产品推荐
相关产品推荐

