Skip to content

Grid Stuck When > ~500 Tests Are Executed In Parallel With ChromeDriver #1739

@ryanlevell

Description

@ryanlevell

This became an issue sometime after version 2.47.1.
I tested two versions, 2.48.2 and 2.52.0 and they both get stuck.

I duplicated this issue locally using a single computer with a grid running 5 instances. My real grid environment has 100 browser instances available, hence why I sometimes have 500 tests queued.

I am using ChromeDriver 2.21.

Expected Behavior

Each test iteration opens a new Chrome browser and runs the test normally.

Actual Behavior

The first set of browsers get stuck on the initial data:, screen in Chrome.

Steps to reproduce

  1. Start the hub
    • No Issue: java -jar selenium-server-standalone-2.47.1.jar -role hub
    • Issue: java -jar selenium-server-standalone-2.52.0.jar -role hub
  2. Start a node
    • No Issue: java -jar selenium-server-standalone-2.47.1.jar -role node -hub http://localhost:4444/grid/register -Dwebdriver.chrome.driver=c:\selenium_drivers\chromedriver.exe
    • Issue: java -jar selenium-server-standalone-2.52.0.jar -role node -hub http://localhost:4444/grid/register -Dwebdriver.chrome.driver=c:\selenium_drivers\chromedriver.exe
  3. Run the test
    • mvn clean test
    • Three files below

testng.xml

<suite name="Suite" data-provider-thread-count="100" parallel="methods" thread-count="10">
    <test name="Test">
        <classes>
            <class name="com.mytest.AppTest"/>
        </classes>
    </test>
</suite>

src/test/java/com/mytest/AppTest.java

package com.mytest;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class AppTest {

    @Test(dataProvider = "dp")
    public void test1() throws MalformedURLException {
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
        driver.get("http://google.com");
        driver.quit();
    }

    @Test(dataProvider = "dp")
    public void test2() throws MalformedURLException {
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
        driver.get("http://google.com");
        driver.quit();
    }

    @Test(dataProvider = "dp")
    public void test3() throws MalformedURLException {
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
        driver.get("http://google.com");
        driver.quit();
    }

    @DataProvider(name = "dp", parallel = true)
    public static Object[][] dp() {
        return new Object[500][0];
    }
}

pom.xml

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mytest</groupId>
    <artifactId>ManyTests</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.9.10</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>2.52.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.52.0</version>
        </dependency>
    </dependencies>
</project>

Metadata

Metadata

Assignees

No one assigned

    Labels

    B-gridEverything grid and server related

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions