空手道加特林:Callonce 没有 运行

Karate-Gatling: Callonce does not run

我有一个功能文件需要登录凭据才能进行测试。在空手道中,我添加了一个 callonce read(login.feature),这样登录只会发生一次,并且凭据可以保存在空手道中。

然而,当我 运行 在 Karate-Gatling 中使用相同的功能文件时,我 运行 出错了:

18:34:58.325 [GatlingSystem-akka.actor.default-dispatcher-4] INFO  com.intuit.karate - >> lock acquired, begin callonce: read('login.feature')
18:34:58.357 [GatlingSystem-akka.actor.default-dispatcher-4] INFO  com.intuit.karate - >> lock acquired, begin callonce: read('login.feature')
18:34:58.357 [GatlingSystem-akka.actor.default-dispatcher-4] INFO  com.intuit.karate - >> lock acquired, begin callonce: read('login.feature')

================================================================================
2019-05-06 18:34:58                                           1s elapsed
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=0      KO=0     )


---- test1 ---------------------------------------------------------------------
[##########################################################################]100%
          waiting: 0      / active: 0      / done: 1
================================================================================

有一个解决方法,我先执行 login.feature,然后将登录令牌提供给其他功能文件。但是,我想知道是否只有我,或者不支持 callonce(可能还有 call)功能。我怀疑 Gatling 没有等待对 return 的调用,而是简单地关闭了测试场景。

是的,请记住 callonce 仅限于功能文件。

使用 callSingle() - 您可以在功能文件中使用它(而不是通常推荐的 karate-config.js) - 保证锁定所有功能和 运行一次。