调用Xray Rest API向Jira导入Cucumber执行结果报错求助
Xray API导入Cucumber测试执行结果报错解决方案
错误原因
你遇到的assignee: Field 'assignee' cannot be set错误,核心原因不是Cucumber报告结构不兼容,而是Xray创建Test Execution时,尝试设置的assignee字段不在对应Issue类型的编辑屏幕上,或者该字段的配置不允许当前操作。不过仍需确认请求格式是否符合Xray API要求。
符合Xray要求的请求格式
1. api/v1/import/execution/cucumber(JSON请求体)
该接口支持自定义Test Execution属性,请求体需包含info(配置Test Execution)和tests(Cucumber测试结果数组)两部分:
{ "info": { "summary": "自动化测试执行报告", "description": "由Cucumber自动化测试生成", // 若不需要设置负责人,直接删除assignee字段 // "assignee": "jira-username" }, "tests": [ // 此处粘贴cucumber-report.json的完整数组内容 { "uri": "src/test/java/resources/your-feature.feature", "name": "测试功能模块", "elements": [ // 场景、步骤等测试内容 ] } ] }
如果不需要自定义Test Execution属性,也可直接传入Cucumber原始JSON数组,但需确保Xray默认配置不会自动设置assignee(否则仍会触发错误)。
2. rest/raven/1.0/import/execution/cucumber/multipart(多表单上传)
该接口支持直接上传Cucumber报告文件,同时通过fields参数配置Test Execution:
curl --location 'https://xray.cloud.getxray.app/rest/raven/1.0/import/execution/cucumber/multipart' \ --header 'Authorization: Bearer $token' \ --form 'file=@target/cucumber-report.json' \ --form 'fields={ "summary": "自动化测试执行结果", "description": "通过Multipart接口导入" // 避免添加assignee字段,或确保该字段在屏幕上可见 }'
解决assignee字段错误的具体步骤
- 检查Jira屏幕配置:确认Test Execution对应的Issue类型(默认是Test Execution)的编辑屏幕中包含
assignee字段,若没有,需在Jira后台将该字段添加到对应屏幕。 - 移除assignee配置:如果不需要自动分配负责人,在请求的
info或fields中不要包含assignee字段,Xray会遵循Jira默认分配规则(如不分配或分配给项目默认负责人)。 - 验证用户权限:确保API token对应的Jira用户拥有设置assignee字段的权限,且用户账号存在。
确认Cucumber报告结构有效性
Cucumber默认生成的报告结构是兼容Xray的,只需确保报告是JSON数组格式,包含uri、elements等核心字段,示例片段:
[ { "uri": "features/login.feature", "name": "登录功能测试", "elements": [ { "keyword": "Scenario", "name": "有效凭证登录成功", "steps": [ { "keyword": "Given ", "name": "用户处于登录页面", "result": { "status": "passed", "duration": 123456789 } } ] } ] } ]
内容的提问来源于stack exchange,提问作者shi
相关产品推荐
相关产品推荐

