问题描述
我正在一个团队中,向我们展示空手道的优势,使其成为我们API测试的首选框架。但是,关于数据驱动的测试,我遇到了几个问题。
我经历了documentation,csv files,但找不到以下问题的解决方案:
- 空手道是否能够对csv文件中给出的特定数据集(例如,基于优先级p0,p1)执行测试?
“ test.csv”示例:
|priority|data1|
| p0 | 1 |
| p0 | 2 |
| p1 | 4 |
| p1 | 6 |
我想用csv文件(p0或p1或两者)中的特定数据集运行测试用例。空手道有能力做到这一点吗?
解决方法
我可以通过多种方式进行操作,这是一种:
Background:
* def data = read('test.csv')
* def selected = 'p1'
* def fun = function(x){ return x.priority == selected }
* def filtered = karate.filter(data,fun)
Scenario Outline:
* print __row
Examples:
| filtered |
您无需强行进入Scenario Outline
,您可以循环访问数据并忽略不需要进行任何处理的行。
有关更多建议,请参考此答案:https://stackoverflow.com/a/61685169/143475
请注意,如果需要,您可以“回退”至Java以获取高级逻辑:https://github.com/intuit/karate#calling-java