如何在空手道中使用条件

时间:2017-10-02 12:07:57

标签: if-statement karate

假设我有以下Json响应

[
    {
        id: 1,
        name: "John",
        password: "JohnsPassword54",
    },
    {
        id: 2,
        name: "David",
        password: "DavidsPassword24",
    }
]

然后,如何使用名称David提取数组以进行进一步验证?

e.g。我想说如果name == David然后保存id

2 个答案:

答案 0 :(得分:7)

干得好:)掌握Json-Path是充分利用空手道的关键!

只是为了演示,这是另一个选项,使用get关键字从返回的数组中获取第一个元素,因为Json-Path通配符搜索总是返回一个数组:

* 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

答案 1 :(得分:2)

我在Json表达式评估中找到了解决方案 -

def user = $..[?(@.name == 'David')]

然后我可以使用以下内容 -

def userId = user[0].id