Это проще, чем вы думаете:
Scenario Outline: Test
* def body = { name: '#(name)' }
* body[key] = value
* print body
Examples:
| name | key | value |
| John | key1 | value1 |
| Jane | key2 | value2 |
Также см .: https://github.com/intuit/karate#scenario -outline-extensionments
РЕДАКТИРОВАТЬ: если у вас действительно очень разные полезные нагрузки в каждой строке я лично рекомендую вам создать отдельную Scenario
- по моему мнению, попытка сжать все в один супер-обобщенный c -dynami c Scenario
просто приводит к проблемам с читаемостью и удобством сопровождения, см .: { ссылка }
Тем не менее, вы можете сделать это:
Scenario Outline: Test
* print body
Examples:
| body! |
| { "name": "John", "metadata": { "key1": "value1" } } |
| { "name": "Jane" } |
Существуют «умные» способы удаления некоторых частей JSON, например: https://github.com/intuit/karate#remove -if-null - но вы можете выбрать, какой подход проще.