如何在空手道中找到动态键值?
How to find dynamic key values in Karate?
我正在点击 JIRA API 以根据周期名称获取周期 ID
API : http://localhost:8080/rest/zapi/latest/cycle?projectId=78654&versionId=123
我收到以下回复:
{
"1345": {
"totalExecutions": 0,
"endDate": "",
"description": "",
"versionName": "Unscheduled",
"projectKey": "ABC",
"totalDefects": 0,
"versionId": 123,
"name": "First cycle",
"totalFolders": 0,
"projectId": 78654
},
"5789": {
"totalExecutions": 0,
"endDate": "",
"description": "",
"versionName": "Unscheduled",
"projectKey": "ABC",
"totalDefects": 0,
"versionId": 123,
"name": "Karate DEMO",
"totalFolders": 0,
"projectId": 78654
},
"6543": {
"totalExecutions": 0,
"endDate": "",
"description": "",
"versionName": "Unscheduled",
"projectKey": "ABC",
"totalDefects": 0,
"versionId": 123,
"name": "Second Cycle",
"totalFolders": 0,
"projectId": 78654
},
"recordsCount": 3
}
这里的 Id 是动态的,即 1345,5789,6543
如何使用空手道 jsonpath 获取 ID,即 5789,其中名称为“空手道演示”
使用 JSON 转换来更改形状,这使得 JsonPath 更容易实现。也可以查资料因为karate.forEach()
是“扫描”:https://github.com/intuit/karate#json-transforms
* def list = []
* def fun = function(k, v){ karate.appendTo('list', { key: k, val: v } )}
* karate.forEach(response, fun)
* def keys = $list[?(@.val.name=='Karate DEMO')].key
我正在点击 JIRA API 以根据周期名称获取周期 ID
API : http://localhost:8080/rest/zapi/latest/cycle?projectId=78654&versionId=123
我收到以下回复:
{
"1345": {
"totalExecutions": 0,
"endDate": "",
"description": "",
"versionName": "Unscheduled",
"projectKey": "ABC",
"totalDefects": 0,
"versionId": 123,
"name": "First cycle",
"totalFolders": 0,
"projectId": 78654
},
"5789": {
"totalExecutions": 0,
"endDate": "",
"description": "",
"versionName": "Unscheduled",
"projectKey": "ABC",
"totalDefects": 0,
"versionId": 123,
"name": "Karate DEMO",
"totalFolders": 0,
"projectId": 78654
},
"6543": {
"totalExecutions": 0,
"endDate": "",
"description": "",
"versionName": "Unscheduled",
"projectKey": "ABC",
"totalDefects": 0,
"versionId": 123,
"name": "Second Cycle",
"totalFolders": 0,
"projectId": 78654
},
"recordsCount": 3
}
这里的 Id 是动态的,即 1345,5789,6543
如何使用空手道 jsonpath 获取 ID,即 5789,其中名称为“空手道演示”
使用 JSON 转换来更改形状,这使得 JsonPath 更容易实现。也可以查资料因为karate.forEach()
是“扫描”:https://github.com/intuit/karate#json-transforms
* def list = []
* def fun = function(k, v){ karate.appendTo('list', { key: k, val: v } )}
* karate.forEach(response, fun)
* def keys = $list[?(@.val.name=='Karate DEMO')].key