我有一个功能文件,需要登录凭据才能进行测试。在空手道中,我添加了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
)功能。我怀疑加特林机不等待呼叫返回而只是关闭测试场景。
答案 0 :(得分:0)
是的,请记住callonce
的作用域是功能文件。
使用callSingle()
-您可以在功能文件中使用它(而不是通常推荐的karate-config.js
)-并且可以锁定所有功能并运行一次。