空手道 - 能够对 csv 文件中的特定数据集执行测试
Karate - Ability to execute tests on a specific set of data in a csv file
我在一个团队中,展示空手道作为我们 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
,你可以遍历数据并忽略你不想做任何处理的行。
更多想法请参考这个答案:
请注意,如果需要,您可以“回退”到 Java 以获得高级逻辑:https://github.com/intuit/karate#calling-java
您可以在此处使用的另一个有用的 karate 功能是标记示例数据的不同部分,并且 运行 根据您的需要使用一个或多个标记来标记场景。参考:https://intuit.github.io/karate/#tags-and-examples
因此您可以将示例数据编写为(一个场景可以有多个“示例:”部分,默认情况下,一个场景将 运行 所有“示例:”,除非在执行过程中指定了标签场景:
@priority=p0
Examples:
|data1|
| 1 |
| 2 |
@priority=p1
Examples:
|data1|
| 4 |
| 6 |
现在您可以 运行 您的场景同时使用 p0 和 p1 标签,它将通过 data1 : 1, 2, 4, 6。或者 运行 只有一个标签 - 而且它将 运行 具有该标签数据的场景。
我在一个团队中,展示空手道作为我们 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
,你可以遍历数据并忽略你不想做任何处理的行。
更多想法请参考这个答案:
请注意,如果需要,您可以“回退”到 Java 以获得高级逻辑:https://github.com/intuit/karate#calling-java
您可以在此处使用的另一个有用的 karate 功能是标记示例数据的不同部分,并且 运行 根据您的需要使用一个或多个标记来标记场景。参考:https://intuit.github.io/karate/#tags-and-examples
因此您可以将示例数据编写为(一个场景可以有多个“示例:”部分,默认情况下,一个场景将 运行 所有“示例:”,除非在执行过程中指定了标签场景:
@priority=p0
Examples:
|data1|
| 1 |
| 2 |
@priority=p1
Examples:
|data1|
| 4 |
| 6 |
现在您可以 运行 您的场景同时使用 p0 和 p1 标签,它将通过 data1 : 1, 2, 4, 6。或者 运行 只有一个标签 - 而且它将 运行 具有该标签数据的场景。