Karate中Scenario Outline能否同时传入CSV数据与Examples表的JSON数组?
Karate中Scenario Outline是否支持同时使用CSV文件与Examples表两个数据源?
我使用read("csv文件路径")方法从CSV文件读取数据,运行正常。现需在Scenario Outline中同时读取该文件并传入JSON对象列表(JSON数组)。我认为将JSON数组存入CSV并不合适,因此尝试从Examples表传入JSON数组,具体代码如下:
Examples: | read('classpath:Features/bulkdata/testdata/customer.csv') | | data | | [{"k1": "v1","k2": "v2","k3": "v3"},{"k4": "v4","k5": "v5","k6": "v6"}] | | [{"k7": "v8","k9": "v9","k10": "v10"}] |
请问在Karate中是否支持同时从两个数据源(一个来自CSV文件,另一个来自Examples表)传入数据?
Karate支持这种同时使用两个数据源的场景,但你当前的写法存在格式错误,需要调整:
- 不能拆分两个
Examples块,必须合并成一个完整的表格,同时包含CSV读取列和自定义JSON数组列,列名要和Scenario Outline中的参数一一对应。 - 每行
Examples数据会将CSV读取结果和对应的JSON数组一起传入场景参数。
调整后的正确代码示例:
Scenario Outline: 多数据源联合测试 Given 加载CSV数据 <csvData> And 传入JSON数组 <data> # 后续测试步骤... Examples: | csvData | data | | read('classpath:Features/bulkdata/testdata/customer.csv') | [{"k1": "v1","k2": "v2","k3": "v3"},{"k4": "v4","k5": "v5","k6": "v6"}] | | read('classpath:Features/bulkdata/testdata/customer.csv') | [{"k7": "v8","k9": "v9","k10": "v10"}] |
补充说明:
- CSV文件通过
read()读取后会返回JSON数组,可在步骤中直接使用或遍历处理。 - 这种方式既保留了CSV存储结构化数据的便利性,又能灵活传入自定义JSON数组,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Shreyansh Jain
相关产品推荐
相关产品推荐

