如何添加多个 JSON 数组元素取决于示例数据集
How to add Multiple JSON array Element depends on Example Data Set
在我的空手道场景自动化过程中,得到了以下问题陈述。谁能帮我解决这个问题?
我的 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
在我的空手道场景自动化过程中,得到了以下问题陈述。谁能帮我解决这个问题?
我的 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