Я пытаюсь провести тест каратэ, где мне нужно пройти через 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
См. также: https://stackoverflow.com/a/59162760/143475
Вы также можете использовать динамический Json-Path, см.: https://stackoverflow.com/a/50855425/143475