与Selenium Grid for Webdriver + TestNG并行执行的问题

时间:2016-05-15 18:11:13

标签: selenium webdriver testng selenium-grid

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

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

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

} }

我们是否有办法使@Test与@Fast / @ After方法

在同一个线程中

2 个答案:

答案 0 :(得分:0)

你试过

吗?
    @Test(singleThreaded=true)

在班级。这样该类中的所有测试方法都将在同一个线程上运行。 here是示例

谢谢你, 穆拉利

答案 1 :(得分:0)

@Manish_pat

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