Selenium

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Bei Selenium handelt es sich um ein Testframework für Web-Anwendungen. Mit seiner Hilfe ist es möglich, Interaktionen mit einer Web-Anwendung aufnehmen zu lassen und diese Tests automatisiert beliebig oft wieder abzuspielen. Es kann vor allem Entwicklern von Web-Anwendungen sehr viel Tipparbeit abnehmen, wie z.B. das wiederholte Ausfüllen von Webformularen. Es basiert rein auf HTML und JavaScript, wobei die Steuerung des Browsers mittels JavaScript realisiert wird. Selenium hält dabei unterschiedliche JavaScript-Codes für die verschiedenen Browser vor. Für einen schnellen Einstieg kann direkt die Selenium-IDE als Firefox-Plug-In installiert und getestet werden: der Benutzer interagiert nur mit Firefox und Selenium nimmt den Test auf und spielt ihn wieder ab. Das Framework besteht aus vier Modulen, die alle von OpenQA heruntergeladen und frei verwendet werden können. Selenium wurde von ThoughtWorks entwickelt, ist heute Open-Source und unter Apache 2.0 lizenziert.

Selenium Core

Das Core-Modul muss auf dem Webserver der zu testenden Webanwendung installiert werden. Testfälle werden mittels der Sprache Selenese erstellt. Mehrere dieser Testfälle können in sogenannten Test-Suites zusammengefasst werden. Zum Ausführen werden die Testfälle auf den Webserver kopiert. Die Ausführung erfolgt mittels Aufruf des TestRunners über den Browser auf der Client-Seite. Die Einbettung der Test-Engine in die entsprechende Webseite erfolgt dabei mittels JavaScript und iFrames. Grenzen von Selenium Core: Es muss auf dem Webserver der Webanwendung installiert sein und die Testfälle müssen hierhin kopiert werden. Häufig gibt es Probleme mit den Sicherheitsbeschränkungen von JavaScript. So verbietet z.B. die Same Origin Policy, dass Dokumente und Skripte, die aus einer Quelle stammen, Eigenschaften eines Dokumentes aus einer anderen Quelle auslesen oder verändern. Die Quelle selbst wird dabei durch die Parameter Domainname, Port und Protokoll bestimmt. Ein weiteres Problem ist oftmals das Hochladen der benötigten Test-Dateien.

Selenium IDE

Hierbei handelt es sich um eine Erweiterung für den Firefox in Form eines Plug-Ins, das es erlaubt Tests aufzunehmen, zu editieren und zu debuggen. Die Aufnahme der Tests erfolgt durch den Benutzer des Firefox. Der Selenese-Quellcode wird dabei automatisch generiert und kann als Testfall in einer HTML-Datei in Selenese gespeichert oder in die folgenden Sprachen exportiert werden: Java, C#, Perl, PHP, Python und Ruby. Die aufgenommenen Testfälle können schrittweise oder mittels Breakpoints durchlaufen werden. Grenzen von Selenium IDE: Durch Verwendung von chrome können die Sicherheitsrestriktionen von JavaScript umgangen werden. Weiter ist Selenium IDE durch die Sprache Selenese beschränkt, so werden keine Schleifen unterstützt und auf Dateien, die nicht über den Browser erreichbar sind, kann nicht zugegriffen werden.

Selenium Remote Control (RC)

RC ist ein Modul, das aus 2 Teilen besteht. Die ist zum einen der Selenium Server und zum anderen der Selenium Client-Treiber. Es stellt eine eigene Server-Instanz bereit, über die Tests, die z. B. in Java (analog zu JUnit) implementiert sind, ferngesteuert ausgeführt werden können. Es ermöglicht die Testautomatisierung von GUI-Tests. Der Selenium Server kann Browser kontrollieren, sie starten, stoppen und den Proxy einstellen; ist in Java geschrieben und bietet zusätzlich einen interaktiven Modus.

Selenium on Rails

Selenium Core, aber direkt an Ruby on Rails gekoppelt.

Selenium und eStudy

Eine aktuelle Version des Selenium RC befindet sich im eStudy Trunk unter libs


Info.png

Die aktuelle (Okt. 08) Version v1.0-beta-1 ist nicht Firefox3 kompatibel

Weblinks