如何将 json 响应中的特定数组元素捕获到小黄瓜属性中?
How do I capture a specific array element from json response into a gherkin cucumber attribute?
我试图从下面的 json 响应中捕获 ghi[0]
元素,即 x
并将其分配给使用 gherkin/cucumber 语言的我的 BDD 中的一个变量,但是它抱怨它无法读取 属性.
我是这样捕获的:
* def xyz = response.results.payload.abc.def.ghi
回应
{
"results": {
"payload": {
"abc": [
{
"def": [
{
"ghi": "x",
},
{
"ghi": "y",
},
{
"ghi": "y",
}
]
}
]
}
}
}
这就是它的抱怨:
features.blah: [1.1:50] blah.feature:30 - evaluation (js) failed: response.results.payload.abc.def.ghi, javax.script.ScriptException: TypeError: Cannot read property "ghi" from undefined in <eval> at line number 1
那是因为你的访问权限有误。下面这个有效:
* def xyz = response.results.payload.abc[0].def[0].ghi
* match xyz == 'x'
也就是说,如果你懒得遍历深度嵌套的数据,你可以这样做:
* def xyz = get[0] $..ghi
* match xyz == 'x'
请阅读文档,这将节省您的时间:) https://github.com/karatelabs/karate#get
我试图从下面的 json 响应中捕获 ghi[0]
元素,即 x
并将其分配给使用 gherkin/cucumber 语言的我的 BDD 中的一个变量,但是它抱怨它无法读取 属性.
我是这样捕获的:
* def xyz = response.results.payload.abc.def.ghi
回应
{
"results": {
"payload": {
"abc": [
{
"def": [
{
"ghi": "x",
},
{
"ghi": "y",
},
{
"ghi": "y",
}
]
}
]
}
}
}
这就是它的抱怨:
features.blah: [1.1:50] blah.feature:30 - evaluation (js) failed: response.results.payload.abc.def.ghi, javax.script.ScriptException: TypeError: Cannot read property "ghi" from undefined in <eval> at line number 1
那是因为你的访问权限有误。下面这个有效:
* def xyz = response.results.payload.abc[0].def[0].ghi
* match xyz == 'x'
也就是说,如果你懒得遍历深度嵌套的数据,你可以这样做:
* def xyz = get[0] $..ghi
* match xyz == 'x'
请阅读文档,这将节省您的时间:) https://github.com/karatelabs/karate#get