TestNg DataProvider不能同时运行所有测试,而是分批运行

时间:2018-08-28 04:38:02

标签: selenium dataprovider saucelabs

我正在使用调味汁实验室来运行selenium testNg Java脚本,其中我有一个@Test方法,该方法接受来自TestNG的@dataProvider的250个不同的值作为输入。 预期:要在ucelabs中并行生成250个浏览器会话,并并行执行250次@Test方法。 实际:我一次最多只能看到10到12个,随着运行批处理的完成,剩余的会话将随之而来。

请在我的代码下面找到 POM.XML代码段:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12.4</version>
    <configuration>
        <parallel>methods</parallel>
        <threadCount>250</threadCount>
        <data-provider-thread-count>250</data-provider-thread-count>
        <redirectTestOutputToFile>false</redirectTestOutputToFile>
    </configuration>
</plugin>

DataProvider代码:

@DataProvider(name="SearchData", parallel=true)
public Object[][] GetSearchData() {
//Returning 2D array of Test Data
Object[][] arrayObject = readFromExcel("C:/Test_Workspace/TestData/ICJ-DataProvider.xls","Sheet1");
    return arrayObject;
}

@Test(dataProvider = "SearchData")
public void TestE2E(String hocn, String username, String password, Method method)
throws MalformedURLException, InvalidElementStateException, UnexpectedException {
    this.createDriver("chrome", "54.0", "Windows 10", method.getName());
    WebDriver driver = this.getWebDriver();
    Service.visitPage(driver, hocn, username, password);
}

如您所见,我正在从pom.xml中传递threadCount = 250和data-provider-thread-count = 250。仍以10个为一批运行,以完成数据提供程序中的250个数据。

Image showing only 10 instances at a time instead of 250

有人可以指导我一次启动全部250个会话吗?

1 个答案:

答案 0 :(得分:0)

问题与TestNG无关。

您正被SauceLabs扼杀。

引用SauceLabs文档。

  

检查并发限制

     

每个Sauce Labs帐户都有一个设置的最大并发数   会议。您可以在“我的帐户”页面上找到并发限制   (位于https://saucelabs.com/beta/users/username)。如果这个号码可以   与您的订阅或发票合同不符,请联系   支持。

     

子帐户的并发限制可能会降低   上级帐户。要访问更高的并发级别,您将需要   请负责上级帐户的负责人增加您的   限制。

有关更多信息,请参阅SauceLabs门户上的以下文档。

  1. Why am I not getting the parallelism/concurrency I expected?
  2. Understanding Concurrency Limits and Team Accounts