使用Jira Xray REST API更新测试时customFields格式错误求助
解决Jira Xray API导入测试执行时的customFields格式错误
问题原因
你遇到的错误Error instantiating bean. Field(s) tests -> customFields -> name do not follow the correct format.,核心问题是在customFields数组的对象里包含了name字段。Xray的import/execution API并不需要这个字段,只需要通过id或者自定义字段的key(格式为customfield_xxxx)来标识字段即可。另外你第一个自定义字段的value里多了一个左方括号[,这也可能触发格式验证失败,需要修正。
正确的customFields格式示例
修改后的test_execution payload需去掉name字段,同时确保值的格式匹配字段类型(比如URL字段直接传字符串,单选字段传选项值或ID等):
url = "BaseUrl/rest/raven/2.0/api/import/execution" personal_access_token = "******" # Test execution JSON payload test_execution = { "testExecutionKey": "T4SV-T561", "info": { "revision": "1.0.42134", "testEnvironments": [ "windows", "Linux" ] }, "tests": [ { "testKey": "T4SV-T415", "status": "PASS", 'executedBy':'*****@**.com', "comment": "Test passed successfully", "start": "2023-09-07T11:47:35+01:00", "finish": "2023-09-07T11:50:56+01:00", "customFields": [ { "id": 1, "value": "https://www.#.net" # 移除了多余的左方括号 }, { "id": 2, "value": "https://www.#.net" } ] } ] } headers = {"Content-Type": "application/json",'Authorization': 'Bearer ' + personal_access_token} # Send the POST request response = requests.post(url, headers=headers, data=json.dumps(test_execution),verify=False)
额外注意事项
- 你从
project/{ID}/settings/customfields/testruns获取的是自定义字段的元数据(含name、id、类型等),但导入API的payload格式和元数据格式不同,不需要包含name字段。 - 不同类型的自定义字段,值的格式要求不同:
- URL/文本字段:直接传字符串
- 多选列表:传选项值的数组(比如
["选项1", "选项2"]) - 日期字段:传ISO格式字符串(比如
"2023-09-07T11:47:35+01:00") - 用户字段:传用户邮箱或账号ID
- 确保
id对应的是测试运行(test run)级别的自定义字段,而非测试用例或测试执行级别的字段。
内容的提问来源于stack exchange,提问作者Louay GOURRIDA
相关产品推荐
相关产品推荐

