© Excellent backgrounds/Shutterstock.com
Java Magazin
Teil 2: Selenium im Grid parallelisieren

Testen mit Selenium

Die automatisierte Ausführung von Testläufen ist ein wichtiger Schritt im Softwareentwicklungsprozess, um zu gewährleisten, dass Probleme und Auffälligkeiten bei Codeänderungen schnell erkannt werden.

Tobias Kraft, Roland Rickborn


ArtikelserieTeil 1: Funktionale Tests mit Selenium BuilderTeil 2: Selenium im Grid parallelisieren

Nachdem wir im ersten Teil des Artikels hauptsächlich auf die Aufzeichnungen von Tests mit Selenium Builder eingegangen sind, legen wir in diesem Teil den Schwerpunkt auf das Ausführen der Tests. Die bisher gezeigte Möglichkeit des Abspielens von Tests über das Sele­nium-Builder-Add-on im Firefox ist auf einen Browser beschränkt und muss aktiv durch den Anwender erfolgen. Für eine automatisierte Testdurchführung ist Selenium Builder deshalb eher ungeeignet. Des Weiteren sorgen Browserinkompatibilitäten immer wieder für Probleme, die nur durch Testläufe mit verschiedenen Browsern gefunden werden können.

Die Firma Sauce Labs [1], die wesentlich Sele­nium Builder entwickelt, bietet beispielsweise über ihre Cloud-Lösung eine entsprechende Infrastruktur an, die die Anforderungen der Automatisierung und des Cross-Browser-Testings erfüllt. Diese Lösung eignet sich aus rechtlichen Gründen für viele Projekte jedoch nicht, da die zu testenden Ressourcen über das Internet erreichbar sein müssen.

Selenium Interpreter mit Java

Mit dem Selenium Interpreter [2] steht eine freie Java-Bibliothek zur Verfügung, mit deren Hilfe aufgezeichnete Selenium-Builder-Skripte abgespielt werden können. Das Ausführen der Testsuite für die im ersten Teil des Artikels vorgestellten Mitteilungen kann mit dem folgenden Befehl auf der Kommandozeile erfolgen:

java -jar SeInterpreter.jar createNewsSuite.json

Es wird standardmäßig nur ausgegeben, ob die Ausführung erfolgreich verlief. Für detailliertere Informationen zu den abgearbeiteten Schritten muss der Loglevel auf DEBUG umgestellt werden.

Die Bibliothek bietet aktuell die Möglichkeit zur Nutzung von Firefox sowie des Remote-Drivers zum Abspielen der Tests. Mit Webdriver als Basis lassen sich jedoch mit ein wenig Eigenarbeit einfach weitere Browser unterstützen. Hierfür muss die Klasse WebDriverFactory implementiert werden. Zur Verwendung von Chrome ist die Umsetzung wie in Listing 1 gezeigt denkbar einfach. Über Webdriver lässt sich ebenfalls PhantomJS [3] einbinden. PhantomJS ist ein Browser ohne Oberfläche, der auf WebKit basiert und sich damit hervorragend zur Ausführung von Tests auf Serverumgebungen eignet. Die Implementierung der WebDriverFactory erfolgt analog zu dem vorgestellten Beispiel mit Chrome.

Listing 1package com.sebuilder.interpreter.webdriverfactory; import java.util.HashMap;import org.openqa.selenium.chrome.ChromeDriver;imp...

Java Magazin
Teil 2: Selenium im Grid parallelisieren

Testen mit Selenium

Die automatisierte Ausführung von Testläufen ist ein wichtiger Schritt im Softwareentwicklungsprozess, um zu gewährleisten, dass Probleme und Auffälligkeiten bei Codeänderungen schnell erkannt werden.

Tobias Kraft, Roland Rickborn


ArtikelserieTeil 1: Funktionale Tests mit Selenium BuilderTeil 2: Selenium im Grid parallelisieren

Nachdem wir im ersten Teil des Artikels hauptsächlich auf die Aufzeichnungen von Tests mit Selenium Builder eingegangen sind, legen wir in diesem Teil den Schwerpunkt auf das Ausführen der Tests. Die bisher gezeigte Möglichkeit des Abspielens von Tests über das Sele­nium-Builder-Add-on im Firefox ist auf einen Browser beschränkt und muss aktiv durch den Anwender erfolgen. Für eine automatisierte Testdurchführung ist Selenium Builder deshalb eher ungeeignet. Des Weiteren sorgen Browserinkompatibilitäten immer wieder für Probleme, die nur durch Testläufe mit verschiedenen Browsern gefunden werden können.

Die Firma Sauce Labs [1], die wesentlich Sele­nium Builder entwickelt, bietet beispielsweise über ihre Cloud-Lösung eine entsprechende Infrastruktur an, die die Anforderungen der Automatisierung und des Cross-Browser-Testings erfüllt. Diese Lösung eignet sich aus rechtlichen Gründen für viele Projekte jedoch nicht, da die zu testenden Ressourcen über das Internet erreichbar sein müssen.

Selenium Interpreter mit Java

Mit dem Selenium Interpreter [2] steht eine freie Java-Bibliothek zur Verfügung, mit deren Hilfe aufgezeichnete Selenium-Builder-Skripte abgespielt werden können. Das Ausführen der Testsuite für die im ersten Teil des Artikels vorgestellten Mitteilungen kann mit dem folgenden Befehl auf der Kommandozeile erfolgen:

java -jar SeInterpreter.jar createNewsSuite.json

Es wird standardmäßig nur ausgegeben, ob die Ausführung erfolgreich verlief. Für detailliertere Informationen zu den abgearbeiteten Schritten muss der Loglevel auf DEBUG umgestellt werden.

Die Bibliothek bietet aktuell die Möglichkeit zur Nutzung von Firefox sowie des Remote-Drivers zum Abspielen der Tests. Mit Webdriver als Basis lassen sich jedoch mit ein wenig Eigenarbeit einfach weitere Browser unterstützen. Hierfür muss die Klasse WebDriverFactory implementiert werden. Zur Verwendung von Chrome ist die Umsetzung wie in Listing 1 gezeigt denkbar einfach. Über Webdriver lässt sich ebenfalls PhantomJS [3] einbinden. PhantomJS ist ein Browser ohne Oberfläche, der auf WebKit basiert und sich damit hervorragend zur Ausführung von Tests auf Serverumgebungen eignet. Die Implementierung der WebDriverFactory erfolgt analog zu dem vorgestellten Beispiel mit Chrome.

Listing 1package com.sebuilder.interpreter.webdriverfactory; import java.util.HashMap;import org.openqa.selenium.chrome.ChromeDriver;imp...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang