如何遍历空手道中的Json

How to traverse through a Json in Karate

我正在尝试进行空手道测试,我需要遍历 json 以获得所需的测试数据。

我有以下 json.

{
   "dev":{
      "scenario1":{
         "data":"data1"
      },
      "scenario2":{
        "data":"data2"
      }
   },
   "qa":{
         "scenario1":{
         "data":"data1"
      },
      "scenario2":{
        "data":"data2"
      }
   }
}

下面是我的功能文件。

Background:
* def env = dev

Scenario:

* Given url someurl
* def inputData = testdata.env.scenario1.data
* And request { input: '#(inputData)'}
* When method post
* Then status 200

我需要与我在上面定义的值 env 相匹配的测试数据。 如何设置输入数据的 json 路径。基本上,json 路径应该从我之前定义的变量中获取值。

为此你甚至不需要 Json-Path,只需 JS 即可:

* def data = { foo: 1, bar: 2 }
* def env = 'bar'
* def res = data[env]
* match res == 2

另见:

你也可以做动态的Json-Path,见: