Screen2.0

 
 
 

hints & tips // 2011.01.18 08:30:08 [hh]

"Selenium": Web-Seiten automatisiert testen

Mit dem kostenlosen "Selenium Web Application Testing System" können Web-Seiten inklusive dynamischem DHTML-Content und AJAX-Anwendungen in "Firefox" getestet werden. Die Tests können via Macro Recorder im Browser mit dem "Selenium IDE" ("Integrated Development Environment") aufgezeichnet oder manuell programmiert werden. Die Macros können dann für verschiedene Programmiersprachen wie "C#", "Python", "PHP" oder "Ruby" exportiert werden und über einen lokalen "Java"-basierten Server namens "Selenium RC" ("Remote Control") via Browser-Fernsteuerung gestartet werden.

Überblick

In einem Zwei-Minuten-Video zeigen die Entwickler die wichtigsten Aspekte.

Bei Selenium handelt es sich um ein Testframework für Webanwendungen. Es wurde von einem Programmiererteam der Firma ThoughtWorks entwickelt und als Freie Software unter der Apache-2.0-Lizenz veröffentlicht.

Mit seiner Hilfe ist es möglich, Interaktionen mit einer Webanwendung aufnehmen zu lassen und diese Tests automatisiert beliebig oft zu wiederholen. Es kann vor allem Entwicklern von Webanwendungen sehr viel Tipparbeit abnehmen – beispielsweise beim Ausfüllen von Webformularen – und macht das Testen dadurch schneller, flexibler und verlässlicher.

Selenium basiert rein auf HTML und JavaScript. Für einen schnellen Einstieg kann direkt die Selenium-IDE als Firefox-Plugin installiert und getestet werden: der Benutzer interagiert nur mit Firefox, Selenium nimmt den Test auf und spielt ihn wieder ab.

Selenium Core

Das Core-Modul enthält die komplette Basisfunktionalität von Selenium, also die Testbefehl-API und den TestRunner. Unter Verwendung des Core-Modules kann die TestRunner.html-Webseite mit verschiedenen Browsern geöffnet werden. Dadurch werden Kompatibilitätstests mit verschiedenen Browsertypen möglich.

Selenium IDE

Selenium IDE ist ein Mozilla-Firefox-Add-on, mit dem es möglich ist, direkt im Browser durch die Interaktion mit einer Webanwendung Testfälle aufzunehmen und diese im Browser wieder abzuspielen. Neben der reinen Capture-Replay-Funktionalität lassen sich Überprüfungen mittels verify und assert einbinden. Zudem ist das schrittweise Abspielen von Testfällen und das Setzen von Breakpoints zur Überprüfung der Testfälle möglich. Einzelne Testfälle lassen sich zu Testsuites kombinieren.

Selenium Remote Control (RC)

RC ist ein Modul, das eine eigene Server-Instanz in Form eines Proxys bereitstellt. Dieser Selenium-Server wird von einem Selenium-Client-Treiber ferngesteuert. Dies kann in unterschiedlichen Programmiersprachen geschehen, wie z. B. in Java, .Net, Perl, PHP, Python, Ruby. Bei Java lassen sich diese Testfälle beispielsweise mittels JUnit oder TestNG ausführen.
Es ermöglicht die Testautomatisierung von GUI-Tests in Kombination mit Continuous Integration.

Selenium Grid

Selenium Grid ist eine Erweiterung von Selenium RC und ermöglicht die parallele Ausführung von Tests auf mehreren Servern, um die Dauer der Testdurchführung zu verkürzen. Der Selenium-Client-Treiber verbindet sich dabei mit der Komponente Selenium Hub anstatt mit dem Selenium-Server. Der Hub wiederum leitet die Tests auf freie Selenium-Server weiter. Vorhandene Testfälle für Selenium RC können mit geringen Änderungen auch mit Selenium Grid verwendet werden. Die Testfälle sind jedoch parallel auszuführen, z. B. mit TestNG.

Weitere Informationen: seleniumhq.org

 

Werbung