gpt4 book ai didi

selenium - 无法通过 TestNG Dataprovider 并行运行超过 10 个测试

转载 作者:行者123 更新时间:2023-12-03 06:30:39 24 4
gpt4 key购买 nike

嗨,我设计了一个并行运行的 Selenium 测试 (25)

@Test(dataProvider = "getData" )
public void multiUserTest(String url, String username, String password)
throws InterruptedException, IOException, FindFailed {

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setBrowserName(prop.getProperty("browserName"));
capabilities.setPlatform(Platform.WINDOWS);
RemoteWebDriver driver = new RemoteWebDriver(new URL(prop.getProperty("url")), capabilities);

WebDriverWait wait = new WebDriverWait(driver, 720); // 12 minutes wait.
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

try {
driver.get(url);
driver.findElement(By.xpath(prop.getProperty("username"))).sendKeys(username);
driver.findElement(By.xpath(prop.getProperty("password"))).sendKeys(password);
driver.findElement(By.xpath(prop.getProperty("signin"))).click();
}catch (Exception e) {
e.printStackTrace();
}

我的数据提供商

@DataProvider(parallel = true)
public Object[][] getData() {

Object data[][] = new Object[25][3];
// row 1
data[0][0] = "http:XXXX/login.html";
data[0][1] = "XXX1@gmail.com";
data[0][2] = "XX@123";

// row 2
data[1][0] = "http:XXXX/login.html";
data[1][1] = "XXX2@gmail.com";
data[1][2] = "XX@123";
..........


// row 25
data[24][0] = "http:XXXX/login.html";
data[24][1] = "XXX25@gmail.com";
data[24][2] = "XX@123";

我的 xml 文件是

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="methods" thread-count="1" data-provider-thread-count="25">
<test name="Test">
<classes>
<class name="XXX.MultiUserGuiTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->

现在,当我运行上述测试时,它一次性运行 10 个测试,第 10 个测试完成后,接下来的 10 个测试开始执行,后面是 5 个测试,但是 我想运行我的测试,其中 25 应该立即开始执行

仅供引用,我添加了我的 ec2 实例的屏幕截图。有 25 个 chrome,已启动并运行,请查看鼠标悬停在 chrome 浏览器上方 enter image description here

最佳答案

解决问题的方法:

@BeforeClass
public void setupClassName(ITestContext context) {
context.getCurrentXmlTest().getSuite().setDataProviderThreadCount(100);
context.getCurrentXmlTest().getSuite().setPreserveOrder(false);
}

关于selenium - 无法通过 TestNG Dataprovider 并行运行超过 10 个测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439359/

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