parallel=false 除了场景之外,还可以在功能级别使用吗?

问题描述 投票:0回答:1

我们有多个团队在各自的服务中创建测试,但最近,当我们进行完整的环境回归时,我们遇到了问题,其中来自不同团队的功能更新或读取相同的数据(客户付款更新与代理付款更新) 。 在测试过程中,有人断言数据已正确更新,但对于功能 1-测试 A,它看到的数据在功能 2-测试 B 中已更新,反之亦然。 两个功能文件在功能上方都有@parallel=false:然而,这似乎不适用于跨功能。

有什么方法可以防止可能接触相似资源的多个功能文件之间的冲突(最好是所有更新/更改,然后验证数据测试)?

karate
1个回答
0
投票

我们邀请大家贡献力量来改进现有的

@parallel=false
实现,但是,是的,它在可能的情况下倾向于并行,这是大多数团队想要的。确保所有测试都是独立的是一个很好的做法,否则你将永远挣扎并且永远对你的测试没有信心。更糟糕的是,您永远不会获得并行运行测试的速度优势。

无论如何,我能想到的唯一建议是你应该编写一个小的单例Java类来执行全局锁,现在你可以从任何你想保证只有一个线程运行的地方调用这段代码。例如:

* def Lock = Java.type('my.co.LockUtils')
* Lock.acquire()
# do stuff
* Lock.release()

这可能会让您面临各种其他 Java 线程问题,并且还会显着减慢您的测试速度,因此您必须自己解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.