【问题标题】:How to use if condition in Karate如何在空手道中使用 if 条件
【发布时间】:2017-10-02 12:07:56
【问题描述】:

假设我有以下 Json 响应

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

那么如何提取名为 David 的数组进行进一步验证?

例如我想说如果 name == David 然后保存 id

【问题讨论】:

标签: if-statement karate


【解决方案1】:

干得好 :) 掌握 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

【讨论】:

    【解决方案2】:

    我在Json表达式求值中找到了解决办法-

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

    那我可以用下面的-

    def userId = user[0].id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2016-03-08
      • 2022-01-17
      • 2018-12-04
      • 1970-01-01
      • 2018-11-13
      相关资源
      最近更新 更多