我正在使用Karate为我的API测试编写测试用例。
当我尝试在计算机上上传文件时,我使用Scenario Outline,因为我在特定文件夹下的磁盘上动态更改了文件数。出于这个原因,我使用的CSV文件包含URL和fileName行。我的csv文件如下所示(data.csv):
|URL|fileName|
|http://localhost:8080/VIN/input/telemetry/division_vin_2019_01_12_22_56_01_telemetry.json|telemetry_19_01_12_22_56_01.json.bz2|
|http://localhost:8080/VIN/input/media/vinId_1012_2019_01_12_22_55_55_10_c4.jpeg|c4_wm.jpeg|
|http://localhost:8080/VIN/input/media/vinId_1012_2019_01_12_22_55_55_10_c5.mp4|c5_wm.mp4|
|http://localhost:8080/VIN/input/media/vinId_1012_2019_01_12_22_55_55.json.bz2|media_19_01_12_22_55_59.json.bz2|
我还将附上csv文件的屏幕截图,以防在此帖子中格式不清楚。
我有Feature File运行我的测试用例如下:
Feature: scenario outline using a dynamic table
from a csv file
Scenario Outline:
* url <URL>
* multipart file myFile = { read: '<fileName>', filename: '<fileName>', contentType: 'multipart/form-data' }
* multipart field message = 'hello world'
* method post
* status 200
Examples:
| read('data.csv') |
当我运行此功能文件时,即使csv文件有4行,它也不会运行这些方案。
输出如下所示在控制台上:
0场景0步骤0m0.000s
哪个不识别csv文件并且没有传递数据。
请帮我搞清楚..
您应该使用与CSV列标题相同的示例标题变量
您的CSV中的列名是URL
,fileName
,但您在脚本中使用了<link>
,<file>
。
这应该是<URL>
和<fileName>
尝试,
Feature: scenario outline using a dynamic table
from a csv file
Scenario Outline:
* url <URL>
* multipart file myFile = { read: '<fileName>', filename: '<fileName>', contentType: 'multipart/form-data' }
* multipart field message = 'hello world'
* method post
* status 200
Examples:
| read('data.csv') |
参考空手道演示的例子