用于 Webdriver + TestNG 的 Selenium Grid 并行执行问题

Issue with parallel execution with Selenium Grid for Webdriver + TestNG

我正在尝试使用 Webdriver Hub 和 TestNG 并行机制设置 Webdriver 并行执行。我遇到线程问题

我有这个 class,它扩展了 TestBaseSetUp,它有一个 BeforeMethod 和 AfterMethod,并始终设置为 运行。对于 webdriver 并行执行,我想使用 ThreadLocal,但是 @Test 和 @Before/@After 方法不同 thread.So 如果我在我的 TestBaseSetUp 中将 webdriver 设置为 ThreadLocal,并尝试在我的测试方法中获取它 returns空。

public class TestCheck extends TestBaseSetUp {
    @Test
    public void test(){
          System.out.println("Thread in test " + Thread.currentThread().getId());

} }

我们有没有办法让@Test 也与@Before/@After 方法在同一个线程中

你试过了吗

    @Test(singleThreaded=true)

处于 class 水平。这样 class 中的所有测试方法都将 运行 在同一个线程上。 here 是例子

谢谢, 穆拉利

@Manish_pat

看看我的博客 post:https://rationaleemotions.wordpress.com/2013/07/31/parallel-webdriver-executions-using-testng/ 这个想法是从依赖配置方法来实现 Web 驱动程序实例化,转变为 TestNG 侦听器驱动模型,其中 Web 驱动程序对象在 beforeInvocation() 中创建并在 afterInvocation() 中销毁。 TestNG 保证 beforeInvocation()、@Test 和 afterInvocation() 将始终在同一线程上执行。所以现在您可以继续在这里使用 ThreadLocal。