Wenn es der zweite Fall ist, finden Sie in diesem Artikel - https://opencredo.com/running-cucumber-jvm-tests-in-parallel/. Die grundlegende Logik dahinter besteht darin, in separate JVMs für die Anzahl der erforderlichen parallelen Instanzen zu verzweigen. Dies geschieht mit Maven Surefire Plugin.
Wenn die ersten Fall dann müssen Sie bestimmte Aspekte ändern. Das Plugin übergibt die 'Gabelnummer' an die JVM, mit der Sie den spezifischen Browser-Treiber für diese JVM instanziieren können.
ich Java 8, junit 4.12, picocontainer for Dependency Injection, Maven 3
bin mit (wird nicht mit niedrigeren Versionen arbeiten als ‚Gabel Nummer‘ geht null), selenium 2.53
(u müssen für Änderungen am Code, um herauszufinden, Selen 3, wenn in Treiber-Erstellung) und Browser Chrome and Firefox
(Sie müssen hinzufügen Code für IE).
-Code
- Änderungen
ShareDriver.java
von Artikel Github - mit diesem den statischen Block überschreiben und andere Methoden hinzufügen.
static {
instantiateDriver();
Runtime.getRuntime().addShutdownHook(CLOSE_THREAD);
}
private static void instantiateDriver() {
//numFork will be passed in the maven command line or eclipse
//--- clean install -DnumFork=${surefire.forkNumber}
int browserType = Integer.parseInt(System.getProperty("numFork"));
System.out.println("BROWSER TYPE "+browserType);
if(browserType == 1)
instantiateChromeDriver();
else if (browserType == 2)
instantiateFirefoxDriver();
else if (browserType == 3) {
instantiateIEDriver();
}
}
private static void instantiateIEDriver() {
//Implement this
}
private static void instantiateFirefoxDriver() {
REAL_DRIVER = new FirefoxDriver();
REAL_DRIVER.manage().window().maximize();
}
private static void instantiateChromeDriver() {
System.setProperty("webdriver.chrome.driver", "location of chromedriver.exe");
ChromeOptions chop = new ChromeOptions();
chop.addArguments("test-type");
chop.addArguments("start-maximized");
chop.addArguments("--disable-extensions");
REAL_DRIVER = new ChromeDriver(chop);
}
Änderungen an feature files
- die Tags entfernen. Ändern Sie eine der Feature-Dateien so, dass sie weitere Schritte enthalten. Codieren Sie die neuen Schritte in der Step-Definition-Klasse.
Änderungen an runner classes
- Entfernen Sie die Tag-Option aus Gurke Optionen, müssen Sie möglicherweise Kleber Option auf Ihre Schrittdefinitionsklasse zeigen. So effektiv sind beide Läufer Klassen gleich. Sie können eine der Runner-Klassen entfernen, wenn Sie möchten. Andere Tests werden in jedem Browser zweimal wiederholt.
pom.xml
- Achten Sie darauf, dass die Anzahl der Gabeln definiert (<surefire.fork.count>5</surefire.fork.count>
) mehr als die Anzahl der Browser ist Sie verwenden. Sonst wird die Logik fehlschlagen.
Laufen in Maven - Sie sind von Eclipse mit dem Befehl Plugin ausführen können clean install -DnumFork=${surefire.forkNumber}
in Ziele Option. Oder über die Befehlszeile mit mvn clean install -DnumFork=${surefire.forkNumber}
.
Dies sollte führen alle Szenarien in allen Feature-Dateien in allen Browser-Instanzen. Sie können die Guruoptionen wie Tags und Features verfeinern, um bestimmte Szenarien oder Feature-Dateien auszuführen.
Verwenden Sie Testng oder Junit? – Grasshopper
Ich benutze Junit. –