繁体   English   中英

如何使用TestNG并行运行Selenium?

[英]How to run Selenium in parallel using TestNG?

我正在尝试并行运行两个属于同一类的方法。 我的代码启动了两个单独的浏览器,但是当第一种方法完成时,它会终止另一个浏览器,而不是终止该特定浏览器。

方法A-浏览器A-说需要20秒

方法B-浏览器B-说需要40秒

方法A完成后,它将杀死浏览器B而不是浏览器A。

这是我的代码:

public class AccountTest {

    private WebDriver driver;

    @BeforeMethod(alwaysRun=true)
    public void initializeDriver() throws MalformedURLException {
        driver = new FirefoxDriver();
        driver.manage().deleteAllCookies();
        driver.manage().window().maximize();
    }

    @Test(groups="Login")
    public void loginTest() {
        HomePage homePage = new HomePage(driver);
        SignInPage signInPage = homePage.signIn();
        signInPage.signIn("test_user0401@fakemail.com", "abcd1234");
    }


    @Test(groups="Register")
    public void registerTest() {
        HomePage homePage = new HomePage(driver);
        SignInPage signInPage = homePage.signIn();
        RegisterPage registerPage = signInPage.register();
        registerPage.register();
    }

    @AfterMethod(alwaysRun=true)
    public void tearDown() {
        driver.quit();
    }
}

这是我的testng.xml:

<suite name="Automation Suite" parallel="methods" verbose="10">

    <test name="AccountTest">
        <classes>
            <class name="com.selenium.test.AccountTest"/>
        </classes>
    </test>

</suite>

我目前不使用网格。 试图在本地进行这项工作,但是我将开始使用Saucelabs进行并行测试。

你知道怎么了吗

提前致谢

TestNG只会实例化您的课程一次。 因此,每次运行@BeforeMethod方法时,驱动程序字段都会被覆盖。

要更改此设置,可以并行运行类,也可以设置@DataProvider传入驱动程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM