如何使用REST API和JSON在ALM单个请求中创建多个测试运行
问题解决方法
错误原因
你遇到的qccore.general-error, No content to map to object due to end of input报错由两类问题导致:
- JSON格式非法:你提供的请求体中
entities数组内的两个测试实体对象之间缺少逗号分隔,同时额外携带了仅接口响应才会返回的TotalResults字段,导致服务端无法正常解析JSON结构,直接触发输入解析失败报错。 - 不符合QC/ALM REST API批量创建规范:创建场景下不需要传入系统自动生成的字段(比如
id、test-ver-stamp、creation-time等),这类字段由服务端自动赋值,强制传入会触发规则校验失败。
修正后的请求结构示例
{ "entities": [ { "Fields": [ {"Name":"estimate-devtime","values":[]}, {"Name":"vc-checkin-time","values":[{"value":"17:12:44"}]}, {"Name":"vc-start-audit-action-id","values":[{"value":"3"}]}, {"Name":"configurations-count","values":[{"value":"1"}]}, {"Name":"description","values":[{"value":"test1 desc"}]}, {"Name":"name","values":[{"value":"Test1"}]}, {"Name":"has-linkage","values":[{"value":"N"}]}, {"Name":"vc-status","values":[{"value":"Checked_In"}]}, {"Name":"has-criteria","values":[{"value":"N"}]}, {"Name":"dev-comments","values":[{"value":"test 1 comment"}]}, {"Name":"vc-version-number","values":[{"value":"2"}]}, {"Name":"vc-checkin-user-name","values":[{"value":"sa"}]}, {"Name":"status","values":[{"value":"Design"}]}, {"Name":"has-dependencies","values":[{"value":"0"}]}, {"Name":"steps","values":[{"value":"0"}]}, {"Name":"vc-checkin-date","values":[{"value":"2012-01-01"}]}, {"Name":"subtype-id","values":[{"value":"MANUAL"}]}, {"Name":"vc-end-audit-action-id","values":[{"value":"3"}]}, {"Name":"parent-id","values":[{"value":"1001"}]}, {"Name":"exec-status","values":[{"value":"Passed"}]}, {"Name":"vc-checkin-comments","values":[{"value":"t 1 checked in"}]}, {"Name":"owner","values":[{"value":"sa"}]}, {"Name":"step-param","values":[{"value":"0"}]} ], "Type":"test" }, { "Fields": [ {"Name":"name","values":[{"value":"Test2"}]}, {"Name":"parent-id","values":[{"value":"1001"}]}, {"Name":"subtype-id","values":[{"value":"MANUAL"}]}, // 其余第二个测试用例的必填字段按规则补全 ], "Type":"test" } ] }
额外注意事项
- 发送请求前请先通过JSON格式校验工具验证请求体语法合法性,避免缺逗号、引号不闭合等低级语法错误。
- 请求头必须携带
Content-Type: application/json,确保服务端按JSON格式解析请求内容。 - 请确认调用的是项目对应测试资源的批量接口,路径格式为
/qcbin/rest/domains/{你的域名称}/projects/{你的项目名称}/tests,请求方法为POST。 - 创建场景下不要传入系统自动维护的字段,减少不必要的校验报错。
内容的提问来源于stack exchange,提问作者Harsh Sonawane
相关产品推荐
相关产品推荐

