2

我有一个功能文件需要登录凭据才能进行测试。在空手道中,我添加了一个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 不会等待调用返回并简单地关闭测试场景。

4

1 回答 1

0

是的,记住callonce范围是功能文件。

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

于 2019-05-06T16:19:13.533 回答