如何在空手道中存储使用 callSingle 创建的实体 ID?
How to store entity IDs created with callSingle in karate?
我正在 运行 使用 Karate 框架进行测试。
作为设置步骤,我需要使用 REST API 创建一些实体。我在空手道中使用 callSIngle
创建它们-config.js:
const result = karate.callSingle('classpath:path/to/createEntities.feature', config)
该功能有一个 Scenario Outline
,定义了需要创建的各种实体。 REST API returns 创建的每个实体的 ID。
如何保存这些 ID?我尝试了几种解决方案,例如在 Scenario Outline
的 Background
部分定义一个变量 - 不起作用,因为它被每个测试覆盖并且只返回它的最后一个值。
Background
* def ids = {}
.....
Scenario Outline:
....
* set ids.<index> = response.id
在此示例中,result
在 ids
映射中只有一个值,对于最后一种情况。
是的,Scenario Outline
不是为了能够累积结果而设计的。您也许可以附加到 JSON 数组,但我将其留给您进行试验。
如果你喜欢 Java,可能有用的一件事是,你可以将数据附加到一些单例中,参考:
否则我建议你使用table
,这里的例子可能是最好的简单参考:https://github.com/karatelabs/karate#data-driven-features
因此您可以拥有一组表格数据,驱动一个循环并将结果作为一个数组,准备好 return 或做任何事情。
我正在 运行 使用 Karate 框架进行测试。
作为设置步骤,我需要使用 REST API 创建一些实体。我在空手道中使用 callSIngle
创建它们-config.js:
const result = karate.callSingle('classpath:path/to/createEntities.feature', config)
该功能有一个 Scenario Outline
,定义了需要创建的各种实体。 REST API returns 创建的每个实体的 ID。
如何保存这些 ID?我尝试了几种解决方案,例如在 Scenario Outline
的 Background
部分定义一个变量 - 不起作用,因为它被每个测试覆盖并且只返回它的最后一个值。
Background
* def ids = {}
.....
Scenario Outline:
....
* set ids.<index> = response.id
在此示例中,result
在 ids
映射中只有一个值,对于最后一种情况。
是的,Scenario Outline
不是为了能够累积结果而设计的。您也许可以附加到 JSON 数组,但我将其留给您进行试验。
如果你喜欢 Java,可能有用的一件事是,你可以将数据附加到一些单例中,参考:
否则我建议你使用table
,这里的例子可能是最好的简单参考:https://github.com/karatelabs/karate#data-driven-features
因此您可以拥有一组表格数据,驱动一个循环并将结果作为一个数组,准备好 return 或做任何事情。