Zum Inhalt springen

Selenium

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. März 2017 um 23:29 Uhr durch Pabstm (Diskussion | Beiträge) (Vervollständigung). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Selenium
Basisdaten

Entwickler ThoughtWorks
Erscheinungsjahr 2004
Aktuelle Version 4.31.0[1]
(5. April 2025)
Betriebssystem Microsoft Windows, Linux, Mac OS X, Solaris, FreeBSD und andere Unix-Varianten (basiert auf Java)
Programmier­sprache Java
Lizenz Apache-Lizenz 2.0
seleniumhq.org

Selenium ist ein Framework für automatisierte Softwaretests von Webanwendungen[2], die von einem Programmiererteam der Firma ThoughtWorks entwickelt und als freie Software unter der Apache-2.0-Lizenz veröffentlicht wurde. Es ist ein weit verbreitetes Tool[3][4] und zählt zu den bekanntesten quelloffenen Testwerkzeugen.[5]

Mit Selenium 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-Addon installiert und getestet werden: der Benutzer interagiert nur mit Firefox, Selenium nimmt den Test auf und spielt ihn wieder ab.

Versionen

Selenium 3

Die finale Version 3.0 ist seit dem 13. Oktober 2016 verfügbar. Dort sind unter anderem folgende Änderungen oder Neuerungen enthalten:

Java
minimale Version ist Java 8.
WebDriver-Nutzer
Fehlerkorrekturen und einfaches Update von Version 2.x möglich.
Selenium Grid-Nutzer
Fehlerkorrekturen und einfaches Update von Version 2.x möglich.
WebDriver APIs
nur diese APIs werden noch unterstützt.
Selenium RC APIs
keine Unterstützung mehr; Teil eines "legacy"-Pakets.
Firefox Unterstützung
Selenium 3.0 unterstützt Firefox 47.0.1 oder älter sowie Firefox 45.4.0 ESR oder älter. Für jüngere Versionen wird Mozilla's GeckoDriver benötigt.

Bestandteile

Selenium Core

Das Core-Modul enthält die komplette Basisfunktionalität von Selenium, also das 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 Add-on für Mozilla Firefox, 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) (veraltet)

RC ist ein veraltetes[6] 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 kontinuierlicher Integration.

Mit dem Release von Selenium 2 wurde Selenium RC von Selenium WebDriver abgelöst und als deprecated gekennzeichnet[7], mit Release von Selenium 3 wurde RC in ein ' legacy' Paket verschoben und steht auf der Hauptseite des Projekts nicht mehr zum Herunterladen zur Verfügung[6].

Selenium WebDriver

Selenium WebDriver ist der Nachfolger von Selenium Remote Control. Er akzeptiert Befehle (in Selenese oder über das Client-API) und leitet sie an einen Browser weiter. Eine Besonderheit bildet HtmlUnit. Ab Version 3.0 ist HtmlUnit nicht mehr Bestandteil des WebDrivers. Dies ist ein Webbrowser ohne grafische Anzeige (headless). Implementiert ist der Selenium WebDriver über Browser Driver, wobei die gängigsten Browser unterstützt werden.

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.

Verwendung von Selenium

Diverse Softwareprodukte im Testing-Umfeld setzen auf Selenium auf, z.B.:

  • Protractor, ein End-To-End Test Framework für AngularJS-Anwendungen,
  • WebTester, ein UI Test Automation Framework
  • Appium, ein Open Source Testautomatisierungswerkzeug für native und hybride mobile Anwendungen (Apps)

Literatur

Einzelnachweise

  1. Release 4.31.0. 5. April 2025 (abgerufen am 1. Mai 2025).
  2. Hauptseminar Web Engineering
  3. The Art of Unit Testing: Deutsche Ausgabe Seite 290 Roy Osherove, Mitp-Verlag
  4. Alexander Neumann: Integrationstests: Selenium 3 ist erschienen. In: Heise online – heise Developer. Heise Medien, 14. Oktober 2016, abgerufen am 1. Februar 2017: „eines der meistgenutzten Werkzeuge in der Webentwicklung“
  5. Automatisierte Testverfahren für web-basierte Anwendungen (PDF; 944 kB) Oliver Fischer, Masterarbeit am Lehrstuhl für Datenstrukturen und Softwarezuverlässigkeit der BTU Cottbus
  6. a b Selenium 3 is Coming. 4. Oktober 2016, abgerufen am 15. Oktober 2016 (englisch, Ankündigung von Selenium 3 im Blog der Entwickler).
  7. Selenium Homepage. Abgerufen am 29. Juli 2016.