Karate 直觉 : How to validate dynamic json array

标签 karate intuit-partner-platform

我已经使用 Karate 有一段时间了,但我一直不知道如何验证这个动态数组。当我使用 API 时,苹果数组的大小会发生变化。

如何逐一遍历数组并验证价格?

JSON:

  {
    "data": {
        "apple": [
            {
                "a": 0,
                "price": 1970,
                "date": "2018-05-30"
            },
            {
                "a": 1,
                "price": 1266,
                "date": "2018-05-31"
            },
            {
                "a": 2,
                "price": 1422,
                "date": "2018-06-01"
            }
        ]
    },
    "status_code": 200
}

最佳答案

我能够通过数据驱动的方法来做到这一点https://github.com/intuit/karate#data-driven-features

Feature: my test

Scenario: 
    * def response =
      """
      {
          "data": {
              "apple": [
                  {
                      "a": 0,
                      "price": 1970,
                      "date": "2018-05-30"
                  },
                  {
                      "a": 1,
                      "price": 1266,
                      "date": "2018-05-31"
                  },
                  {
                      "a": 2,
                      "price": 1422,
                      "date": "2018-06-01"
                  }
              ]
          },
          "status_code": 200
      }
      """
    * def va = call read('classpath:karate/examples/Assertions.feature') response.data.apple

在 Assertions.feature 文件中,我的代码是:

Scenario: 
    * match __arg contains { a: '#(__arg.a)', price: '#(__arg.price)', date: '#(dataBaseResult[__loop].date)' }

注意:

  1. 可以从任何来源提取预期数据。示例:数据库
  2. 记住“__loop”将给出数组的索引

关于 Karate 直觉 : How to validate dynamic json array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603698/

相关文章:

api - 如何在 Karate 特征文件中传递体型?

java - 无法在 Karate 框架中生成报告

Quickbooks IPP v3 请求中的行 TaxCode 无效

quickbooks - 在 QuickBooks API V3 中以 PDF 格式检索发票

java - 使用 QBOVendorService 的 NPE

azure - 在 Azure Pipelines 上使用 Karate 进行 API 测试

rest - 替换不带引号的 JSON 键值

karate - 通过 Karate 发布巴克莱表格时收到损坏的回复

ruby-on-rails - 无法通过 Intuit 应用中心连接到 Quickbooks | Playground

c# - QBO SDK C# - 异步批处理创建多个客户