断言jsonpath响应的问题

问题描述 投票:1回答:1

我正在用Karate用bdd方法编写api测试自动代码。 断言部分让我很努力。我的回答如下所示,当我调用那条路径$.data.subscribers[0].products时,这给了我空的空数组,因为我在http://jsonpath.herokuapp.com/网站上检查过。然而,当我运行我的小黄瓜空手道功能然后它给我响应为null,它仍然给我错误断言。它说实际:

null,expected:null ...

我看不出任何错误,我该如何解决?这是一个错误还是有任何方法来处理它?

我的回复:

{
  "meta": {
    "return_code": 0,
    "message": "success"
  },
  "data": {
    "sbs": [
      {
        "sbs_id": 32432432,
        "dt": "OTT",
        "pt": []
      },
      {
        "sbs_id": 455654445,
        "dt": "IPTV",
        "pt": []
      }
    ]
  }
}

我写的JsonPath:

$.data.sbs[0].pt[0]

空手道给出的断言:

com.intuit.karate.exception.KarateException: base-tvpp-cases.feature:316 
- path: $[0], actual: null, expected: null, reason: actual json-path does 
not exist

Gherkin-Karate-我在功能文件中写的代码:我在下面尝试了两个

And match response.data.subscribers[0].products[0] == null
And match response.data.subscribers[0].products[0] == '#null'
karate gherkin
1个回答
2
投票

只需使用JsonPath通配符(..*)。请注意,使用通配符时 - 结果将始终为JSON数组。这是你的解决方案:

* match response.data..subscribers[0].products[0] == []
© www.soinside.com 2019 - 2024. All rights reserved.