Karate 有没有一种方法可以像java方法链接一样在空手道中链接场景

Karate 有没有一种方法可以像java方法链接一样在空手道中链接场景,karate,Karate,在过去的6个月里,我一直在使用空手道,它提供的功能给我留下了深刻的印象。 我知道空手道是用来单独测试API的,但我们也在尝试将其用于E2E测试,包括一步一步地调用多个场景。 我们的功能文件如下所示 1.通话功能1:情景1 2.通话功能2:场景2 ..... 注意:我们正在为API测试和E2E测试重新使用场景。有时我发现很难记住所有的功能文件。 我们能否像java一样链接场景调用,我怀疑功能文件是否允许我们这样做。我们需要你的宝贵建议。如果您认为我们的方法不正确,请告知我们 首先,我想引用文档:

在过去的6个月里,我一直在使用空手道,它提供的功能给我留下了深刻的印象。 我知道空手道是用来单独测试API的,但我们也在尝试将其用于E2E测试,包括一步一步地调用多个场景。 我们的功能文件如下所示 1.通话功能1:情景1 2.通话功能2:场景2 ..... 注意:我们正在为API测试和E2E测试重新使用场景。有时我发现很难记住所有的功能文件。 我们能否像java一样链接场景调用,我怀疑功能文件是否允许我们这样做。我们需要你的宝贵建议。如果您认为我们的方法不正确,请告知我们


首先,我想引用文档:

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

因此,在默认情况下,我实际上建议团队在
场景
-s中包含多个API调用。这没有什么错,我真的不明白为什么有些人认为你应该为每一个
GET
POST
等设置一个
场景

如果在
功能中有多个
Scenario-s
,只需运行该功能,所有
Scenario-s
都将被执行或“链接”。那有什么问题

我认为你需要改变一些假设。空手道是为集成测试而设计的。如果您确实需要一组单独的测试,一次测试一个API,请创建单独的功能文件。空手道的全部意义在于所需的代码太少了——代码复制完全可以

让我指给你看。对于测试自动化,您不应该到处重复使用东西。它弊大于利


关于空手道中“重复使用过多”的例子,请参见:

我需要更多信息。你所说的API和E2E测试是什么意思?两者都可以由CI作业完成,也可以放在单独的E2E测试应用程序中,该应用程序与云中的任何其他正常应用程序一样运行。“无法记住所有要素文件”是什么意思?您是否在手动测试用例中使用空手道,并且必须手动调用所有场景?如果你能描述一个经典的API测试(你做的是什么)以及它与E2E测试的区别,那就太好了。我已经附上了区别于2的图片。好的,了解了创建功能文件的方法,这些文件可以作为其他可重用场景的组成部分。我猜您在测试自动化中有选择地调用E2E特性文件?而且,。。屏幕截图显示了备忘单?这不是空手道代码的截图,是吗?是的,这是正确的,对不起,请考虑解释意图的图像。我计划使用空手道进行集成/加载/组件和E2E。如果我能通过intellij的建议来实现这个目标,我就能实现所有这些目标。:)谢谢你,彼得,我现在更了解这个目标了。