从空手道中的外部 json 文件创建动态请求正文的问题
Issue with creating a dynamic request body from external json file in karate
我正在尝试从外部 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 中获取颜色键的值,即红色,但它被评估为 null。
不应该是:
"color": "#(myJson.properties.color)"
我正在尝试从外部 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 中获取颜色键的值,即红色,但它被评估为 null。
不应该是:
"color": "#(myJson.properties.color)"