Karate 在空手道中有没有一种方法可以使用空手道、重复或其他方式多次调用某个功能?

Karate 在空手道中有没有一种方法可以使用空手道、重复或其他方式多次调用某个功能?,karate,Karate,我正在尝试测试一个场景,其中我需要发布100次请求(这不是性能测试)。我可以通过设置每100行来使用表功能,其中每行表示一个请求。然而,这将是冗长乏味的 所以我找到了空手道。重复一遍,希望这能解决问题。我只是想知道是否有其他方法来实现我的目标 * def users = function(i){ call read("classpath:v1/createCustomer.feature") { "firstName": '#(firstName)', "lastName": '#(lastNa

我正在尝试测试一个场景,其中我需要发布100次请求(这不是性能测试)。我可以通过设置每100行来使用表功能,其中每行表示一个请求。然而,这将是冗长乏味的

所以我找到了空手道。重复一遍,希望这能解决问题。我只是想知道是否有其他方法来实现我的目标

* def users = function(i){ call read("classpath:v1/createCustomer.feature") { "firstName": '#(firstName)', "lastName": '#(lastName)' }
* def usersResult = karate.repeat(2, users )
* match usersResult [*].responseStatus == [204, 204]

我希望该功能会被调用两次。

您应该能够使用
repeat
来实现此功能,但不要在DSL中使用
call
,而是使用
karate.call

* def users = function(i){ return karate.call("classpath:v1/createCustomer.feature", { "firstName": '#(firstName)', "lastName": '#(lastName)' }) 
* def usersResult = karate.repeat(2, users ) 
* match each usersResult[*].responseStatus == 204

如果你想在每次通话中使用不同的数据,还建议你检查空手道中的选项。正如您在问题中提到的,您可以使用json数组或csv来实现相同的目标,而不是使用100行数据的表

谢谢巴布,上面的代码工作了。我更喜欢这种技术,而不是创建一个外部csv文件。这项技术简洁易懂