【问题标题】:How to traverse a dynamic array using karate?如何使用空手道遍历动态数组?
【发布时间】:2018-06-14 09:48:18
【问题描述】:

我正在打一个 api -> http://127.0.0.1:5000/api/library/?book_id=2,5,13 api的响应是:

{
    "data": {
        "2":{
                "rack": 219,
                "price": 360,
                "title": "book1"
            },
        "5":{
                "rack": 309,
                "price": 230,
                "title": "book2"
            },
        "13":{
                "rack": 112,
                "price": 200,
                "title": "book3"
            }
    },
    "status_code": 200
}

键 2、5、13 是可变的,具体取决于 api 参数。

我写了以下代码=>

Feature: Verify Library API
    Scenario: Verify book prices 
        * def id1 = 2 
        * def id2 = 5 
        * def id3 = 13 
        Given url 'http://127.0.0.1:5000/api/library/?book_id='+ id1 +',' + id2 + ',' + id3 
        When method get 
        Then status 200 
        * def id1_price = $.data.#(id1).price 
        * assert id1_price == 360

我无法在变量中获取 book1 的价格值,导致断言失败。如何使用变量“id1”访问价格?

【问题讨论】:

    标签: karate intuit


    【解决方案1】:

    如果您有动态 JsonPath 表达式,请使用 karate.jsonPath() API。试试这个:

    * def id1_price = karate.jsonPath(response, "$.data." + id1 + ".price")
    

    【讨论】:

    • 你有同样的例子吗?
    • @AineshPatidar 跟随链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多