gpt4 book ai didi

java - 如何使用 TestNG 并行运行 Selenium?

转载 作者:行者123 更新时间:2023-12-01 13:10:24 24 4
gpt4 key购买 nike

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

方法 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 来传入驱动程序。

关于java - 如何使用 TestNG 并行运行 Selenium?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22914332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com