空手道是否支持Def Variable更新最新数据

时间:2019-12-16 08:20:45

标签: bdd karate

我正在做一个测试用例,它将调用API,并且该数据将在一个场景中使用下一个API调用。 我将testdata作为示例4记录的一部分进行传递。在这种情况下,我将第一个给定的API调用输出传递给第二个给定的API调用。作为comapare的一部分,我需要第一个API调用输出数据与第二个API调用结果进行比较

那么有什么方法可以在一个变量中捕获所有四个测试记录数据,首先是API调用数据(每个时间变量都要更新)

示例: * def var ='hello'

  • var = var +'world'

请需要帮助

1 个答案:

答案 0 :(得分:0)

为方便起见,请阅读下面复制的文档:https://github.com/intuit/karate#script-structure

  

在每个方案之前,将在后台使用def设置的变量重新设置。如果您正在寻找一种仅对每个功能执行一次操作的方法,请查看callonce。另一方面,如果您希望后台中的一个变量被一个方案修改,以便以后的变量可以看到更新的值,那不是您应该如何看待的,您应该将“流”合并为一个场景。请记住,您应该能够注释场景或通过标签跳过某些场景而不会影响其他场景。请注意,并行运行程序将并行运行Scenario-s,这意味着它们可以按任何顺序运行。

因此,请不要期望一个Scenario中的变量可以被另一个Scenario更新。

但是在Scenario中,如果您要“收集”数据,则有很多方法。例如,尝试附加到列表-请参考:https://github.com/intuit/karate#json-transforms

* def init = []
# do some API call
* karate.appendTo(init, response)