簡體   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