我会为无法发布实际代码而道歉,因为这是机密信息,但是我想看看是否有人发现了相同的问题。我在项目中查找了可能是这样的任何打开/关闭的问题,但没有发现任何问题。
我注意到,当我使用 空手道testParallel运行器 (我们已经使用了一段时间)时,发出的每个GET,POST,DELETE请求都会被调用在空手道记录中观察到2倍。
是在场景中直接调用请求,还是通过call / callonce从另一个功能文件间接调用请求,都没有关系。
当我 不 使用空手道testParallel跑步者时,只会发出一个请求。
在执行POST以在我们的应用程序中创建数据源时,我注意到了这一点。当我进入应用程序用户界面以验证是否创建了新数据源时,我看到了其中两个。这使我走上了进一步研究可能发生的情况的路径。
为了排除我们的API在数据源创建方面加倍的麻烦,通过完全不同的内部工具创建了一个数据源,并且仅创建了一个数据源。这使我回到空手道,看看是什么原因导致了重复创建并观察了问题。
最重要的是,我 认为 ,并行运行程序导致请求发生两次。
使用空手道v0.9.3
答案 0 :(得分:0)
您不应该使用@RunWith(Karate.class)
批注。这是mentioned in the docs。幸运的是,当每个人都切换到JUnit 5时,这种困惑将消失。
答案 1 :(得分:0)
最初发布此问题时,我肯定使用的是JUnit 4并行执行类 而没有 @RunWith(Karate.class)
注释。这与com.intuit.karate:karate-junit4
依赖关系结合在一起,我肯定收到了多个POST请求。
在重新审视此问题时,我最近更新了我的依赖项以使用com.intuit.karate:karate-junit5
,并更新为使用 JUnit 5 Parallel Execution类(同样,没有使用@RunWith(Karate.class)
注释),并且我很高兴地报告,我不再看到多个POST请求。