karate - 如何添加多个 JSON 数组元素取决于示例数据集
问题描述
在我的空手道场景自动化中,得到了以下问题陈述。有人可以帮我吗?
我的 JSON 文件将包含,
{
"schema_id": 25,
"records": [
{
"value": {
"NUM_CHARGE_ID": "#(numChargeID)",
"DTE_START": "2017-05-26",
"NUM_DAY": "#(numDay)"
}
}
]
}
从我的空手道功能文件中,我想传递来自示例的数据,并且取决于它应该在 json 中创建多个数组元素的数据集。喜欢,
Examples:
| numChargeID | numDay|
|C10,C21,C15,C18|1,2,3,4|
{
"schema_id": 25,
"records": [
{
"value": {
"NUM_CHARGE_ID": "C10",
"DTE_START": "2017-05-26",
"NUM_DAY": "1"
},
{
"NUM_CHARGE_ID": "C21",
"DTE_START": "2017-05-26",
"NUM_DAY": "2"
},
{
"NUM_CHARGE_ID": "C15",
"DTE_START": "2017-05-26",
"NUM_DAY": "3"
},
{
"NUM_CHARGE_ID": "C18",
"DTE_START": "2017-05-26",
"NUM_DAY": "4"
}
}
]
}
空手道有什么办法可以处理这种情况吗?
解决方案
有很多方法可以解决这个问题,也许你不应该试图强迫一切进入Examples:
. 例如:
* def chargeIds = ['C1', 'C2']
* def dayNums = [1, 2]
* def fun = function(x, i){ return { NUM_CHARGE_ID: x, NUM_DAY: dayNums[i] } }
* def records = karate.map(chargeIds, fun)
* print records
这给了你:
[
{
"NUM_CHARGE_ID": "C1",
"NUM_DAY": 1
},
{
"NUM_CHARGE_ID": "C2",
"NUM_DAY": 2
}
]
我推荐的是这样的:
* table records
| NUM_CHARGE_ID | NUM_DAY |
| 'C1' | 1 |
| 'C2' | 2 |
* print records
这给了你完全相同的东西。
还要看看可能的用途set
:https ://github.com/intuit/karate#set-multiple
推荐阅读
- c# - 如何使用 NavigationMenu 在 Frame 内的页面之间导航
- pandas - 将所有行值与列表和计数匹配进行比较
- svn - 是否可以检查使用 Subversion 解决的合并冲突方式的历史记录/日志?
- python - 如何调整文件夹中的多个图像的大小,将它们转换为灰度并将它们保存到另一个文件夹中?
- javascript - 为什么找不到按钮js
- automation - 如何使用邮递员自动化验证 POST 请求中的所有必填字段
- amazon-web-services - 将 FIFO SQS 队列配置为 Cloudwatch 规则目标
- aggregate - 对博客文章的评论应该是聚合根吗?
- python - 如何在 ImageDataGenerator 中对顺序数据进行一次热编码?
- internet-explorer - Explorer 和 Firefox 中的渲染不一致