首页 > 解决方案 > 从空手道中的外部 json 文件创建动态请求正文的问题

问题描述

我正在尝试从外部 json 文件动态创建我的请求正文。我想更新一些值并保持其余值与从 json 接收到的值相同。这里的想法是保留一个可维护的 json 文件并在运行时对其进行操作以执行各种场景。

这是我的功能文件:

* def myJson = read('testFile.json')
* def requestBody = { "product": "#(myJson.product)", "properties": { "make": "#(brand)", "color": "#(myJson.color)" }
When request requestBody
And method post
Then status 200

Examples:
| brand |
| honda |

testFile.json 的内容是 -

{
 "product": "car",
 "properties": {
 "make": "brand",
 "color": "red"
 }
}

问题是,只要有嵌套的 json 对象,这些字段就不会保留 json 中的值。如果该值是从功能文件作为示例传递的,那么它会被正确评估。以下是请求正文如何在服务调用中传递 -

{
 "product": "car",
 "properties": {
 "make": "honda",
 "color": null
 }
}

我需要从 myJson 获取颜色键的值,即红色,但它被评估为空。

标签: karate

解决方案


不应该是:

"color": "#(myJson.properties.color)"

推荐阅读