Postman调用Azure DevOps REST API无法更新共享测试步骤结果
Azure DevOps REST API更新共享步骤测试结果的workItemRevision错误解决方法
问题原因
共享步骤是独立的Azure DevOps工作项,和测试用例内的普通步骤不同,Azure DevOps在更新共享步骤的测试结果时,需要验证workItemRevision字段来避免并发修改冲突。你当前的PATCH请求里没包含这个字段,导致门户端请求时workItemRevisions被设为空字符串,触发验证错误;而普通步骤属于测试用例本身,不需要额外指定该字段,所以不会出问题。
正确处理方法
在每个共享步骤对应的actionResults对象中添加workItemRevision字段,值填对应共享步骤工作项的实际修订版本(你手动改为"1"后成功,说明该共享步骤的当前工作项修订版本是1,后续如果共享步骤有更新,要同步修改这个值)。
修改后的PATCH请求体示例:
[ { "id": 100000, "iterationDetails": [ { "id": 1, "outcome": "Passed", "startedDate": "2022-02-16T21:14:14.337Z", "completedDate": "2022-02-16T21:14:17.057Z", "durationInMs": 27180000.0, "actionResults": [ { "actionPath": "0000000200000001", "sharedStepModel": { "id": 18338, "revision": 2 }, "iterationId": 1, "stepIdentifier": "1;1", "outcome": "Passed", "startedDate": "2022-02-16T21:14:14Z", "completedDate": "2022-02-16T21:14:14Z", "url": "{{baseUrlTestApi}}/Runs/{{runId}}/Results/100000/Iterations/1/ActionResults?actionPath=0000000200000001", "workItemRevision": "1" }, { "actionPath": "0000000200000002", "sharedStepModel": { "id": 18338, "revision": 2 }, "iterationId": 1, "stepIdentifier": "1;2", "outcome": "Passed", "startedDate": "2022-02-16T21:14:14Z", "completedDate": "2022-02-16T21:14:14Z", "url": "{{baseUrlTestApi}}/Runs/{{runId}}/Results/100000/Iterations/1/ActionResults?actionPath=0000000200000002", "workItemRevision": "1" } ], "parameters": [], "attachments": [], "url": "{{baseUrlTestApi}}/Runs/{{runId}}/Results/100000/Iterations/1" } ] } ]
补充说明
如果不确定共享步骤的当前工作项修订版本,可以用以下REST API查询:
GET {{baseUrl}}/wit/workItems/{{sharedStepId}}?api-version=7.0
返回结果里的rev字段就是当前修订版本号。
内容的提问来源于stack exchange,提问作者Alexander Wakka
相关产品推荐
相关产品推荐

