如何在空手道中使用 if 条件
How to use if condition in Karate
假设我有以下 Json 响应
[
{
id: 1,
name: "John",
password: "JohnsPassword54",
},
{
id: 2,
name: "David",
password: "DavidsPassword24",
}
]
那我怎样才能提取名为 David 的数组来做进一步的验证呢?
例如我想说 if name == David 然后保存 id
我在 Json 表达式计算中找到了解决方案 -
def user = $..[?(@.name == 'David')]
那我就可以用下面的-
def userId = user[0].id
干得好:)掌握Json-路径是充分利用空手道的关键!
只是为了演示,这里是另一个选项,使用 get
关键字从数组 returned 中获取第一个元素,作为 Json-Path 通配符始终搜索 return 数组:
* def response =
"""
[
{
id: 1,
name: "John",
password: "JohnsPassword54"
},
{
id: 2,
name: "David",
password: "DavidsPassword24"
}
]
"""
* def userId = get[0] response $[?(@.name == 'David')].id
* match userId == 2
假设我有以下 Json 响应
[
{
id: 1,
name: "John",
password: "JohnsPassword54",
},
{
id: 2,
name: "David",
password: "DavidsPassword24",
}
]
那我怎样才能提取名为 David 的数组来做进一步的验证呢?
例如我想说 if name == David 然后保存 id
我在 Json 表达式计算中找到了解决方案 -
def user = $..[?(@.name == 'David')]
那我就可以用下面的-
def userId = user[0].id
干得好:)掌握Json-路径是充分利用空手道的关键!
只是为了演示,这里是另一个选项,使用 get
关键字从数组 returned 中获取第一个元素,作为 Json-Path 通配符始终搜索 return 数组:
* def response =
"""
[
{
id: 1,
name: "John",
password: "JohnsPassword54"
},
{
id: 2,
name: "David",
password: "DavidsPassword24"
}
]
"""
* def userId = get[0] response $[?(@.name == 'David')].id
* match userId == 2