我有一个问题:如果涉及到并行执行,它如何发挥空手道的作用?
我们以特定的方式使用空手道,在引擎盖下我们有一堆Java代码。我很好奇在我们的Java代码中声明为ThreadLocal的变量是否真的是线程保存的?
每个测试是在单独的线程中运行还是有另一种同时运行测试的方式?
我们面临的问题是,似乎至少有两个正在运行的测试可以访问ThreadLocal变量,这些变量应该彼此隔离。
你能解释一下吗?
最佳答案
如果您使用ThreadLocal
,则您自己一个人:)简而言之,空手道将为Scenario
执行创建一个线程池,每个Scenario
都可以进入这些线程中的任何一个。也许您需要阅读this section,以了解如何强制某些Scenario
-s按顺序运行-但是,如果首先运行的ot不能“清理”,您可能仍然会遇到问题。
编辑:我也认为2种情况不能同时在同一线程上,并且如果您看到此消息-这是一个错误,请帮助我们复制它(请参阅我的回答的最后一行)。
空手道的多线程经过了实战测试,如果不是这种情况,我们将无法声明可以执行Gatling integration。也许您应该只信任空手道来完成您需要的所有繁重工作?例如,查看“挂钩”:https://github.com/intuit/karate#hooks
当然,如果您确实认为有问题,请执行以下过程:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue
关于java - 并行运行空手道测试的方式-问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57677038/