karate - 从空手道中的外部 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 获取颜色键的值,即红色,但它被评估为空。
解决方案
不应该是:
"color": "#(myJson.properties.color)"
推荐阅读
- python - 如何使pandas read_csv中的分隔符接受定义的空格范围作为分隔符
- python - Lightgbm 排名示例
- .net - 使用 .net 核心的自定义获取方法
- google-apps-script - 使用谷歌脚本将图像添加到谷歌表单的标题
- azure - 用于获取 Azure SQL 数据库中表元数据的 API 或服务
- c++ - Pybind11 - 没有复制构造函数/运算符的类
- pandas - 熊猫数据框上的多个条件
- amazon-web-services - Amazon SES 可以在没有任何真实电子邮件地址的情况下处理电子邮件吗?
- php - 将 csv 文件从同一服务器上传到 mysql
- java - 如何将图像附加到按钮而不是在 JavaFX 中设置文本?[无 FXML]