Wie werden Gurkentestfälle mit Grid parallel ausgeführt?

Nach einiger Recherche zur parallelen Ausführung von Gurkentestfällen habe ich den folgenden sehr nützlichen Artikel zu diesem Thema gefunden:

https: //www.opencredo.com/2013/07/02/running-cucumber-jvm-tests-in-parallel

Der Artikel enthält einige ziemlich gute Informationen, mit denen Sie beginnen können, mit einer Umgebung mit mehreren Threads zu arbeiten, einschließlich Code, den Sie von Github herunterladen können.

https: //github.com/tristanmccarthy/Cucumber-JVM-Paralle

Wenn ich den Artikel richtig verstehe, sollte der Treiber für die Arbeit mit Grid konfigurierbar sein, damit Sie mehrere Testfälle auf mehreren Geräten ausführen können. Nachdem Sie den Code mit einem Chromedriver getestet haben, scheint er wie im Artikel beschrieben zu funktionieren. Sobald es jedoch für die Arbeit mit Grid konfiguriert ist, werden die Testfälle nicht mehr parallel ausgeführt. Stattdessen werden sie nacheinander ausgeführt.

Derzeit habe ich Grid mit 1 Hub und 2 Knoten konfiguriert. Jeder Knoten kann zu einem bestimmten Zeitpunkt maximal zwei Sitzungen haben.

Hinweis: Ohne Cucumber kann ich mehrere Testfälle erfolgreich auf mehreren Geräten bereitstellen. Ich glaube also nicht, dass das Problem mit meiner Grid-Einrichtung zusammenhängt.

Hier ist ein Beispiel für den Code des Webtreibers:

static {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setJavascriptEnabled(true);
    capabilities.setBrowserName("chrome");
    capabilities.setPlatform(Platform.ANY);
    try {
        REAL_DRIVER = new RemoteWebDriver(new URL("http://xxx.xxx.xxx.xxx:4444/wd/hub"), capabilities);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    REAL_DRIVER.manage().timeouts().pageLoadTimeout(3000, TimeUnit.SECONDS);
    REAL_DRIVER.manage().window().maximize();
    Runtime.getRuntime().addShutdownHook(CLOSE_THREAD);
}

public SharedDriver() {
    super(REAL_DRIVER);
}

@Override
public void close() {
    if (Thread.currentThread() != CLOSE_THREAD) {
        throw new UnsupportedOperationException(
                "You shouldn't close this WebDriver. It's shared and will close when the JVM exits.");
    }
    super.close();
}

Ich vermute, dass Sie, wenn Sie mehr als einen Browsertyp verwenden, die Testfälle auf mehreren Geräten ausführen können sollten (1 Browser pro Gerät), aber in meinem Fall verwende ich den Chrome-Treiber. Weiß jemand, was möglicherweise verhindert, dass die Testfälle auf mehrere Geräte verteilt werden, oder hat er ein besseres Verständnis dafür, wie Grid mit Gurken funktioniert? Bitte teilen Sie alle Artikel oder Informationen zu diesem Problem.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage