Testautomatisierung mit Selenium

Selenium ist ein beliebtes Testwerkzeug, das von einer großen Community von Testern weltweit verwendet wird. Selenium ist Open-Source und unterstützt die meisten Browser und Betriebssysteme. Tester können mit dem Software-Testing-Tool in jeder beliebigen Programmiersprache automatisieren. 

In diesem Artikel möchten wir euch einen Überblick über Selenium geben. Aber was genau kann Selenium, was können die verschiedenen Selenium-Tools und was sind die Vor- und Nachteile des Tools?

Was ist Selenium?

Selenium wurde mit der Entwicklung eines grundlegenden Tools namens „JavaScriptTestRunner“ von Jason Huggins bei ThoughtWorks erfunden, um die hauseigene Anwendung „Time and Expenses“ zu testen. 

Heute ist es unter Software-Testern und -Entwicklern als portables Open-Source-Framework für die Testautomatisierung populär geworden. Es ermöglicht die Automatisierung von Browsern mit spezifischen Browser-Bindings für die Testautomatisierung von Webanwendungen. Es ist eine Suite von vier Tools, die für unterschiedliche Aufgaben entwickelt wurden.

Selenium IDE

Die Selenium IDE ist ein „Aufzeichnungs- und Wiedergabewerkzeug“ als eine Browsererweiterung für Chrome und Firefox, mit der Sie Testfälle erstellen, indem Sie Ihre Interaktionen mit dem Browser aufzeichnen.

Die Aufzeichnungen kann man anschließend automatisiert ablaufen lassen. Die Interaktionen werden in Schritte in der Selenium-eigenen Sprache umgewandelt“. Diese Schritte können dann in verschiedene Programmiersprachen exportiert werden, darunter Java, Python und Ruby, die dann später ausgeführt werden können. Das Endergebnis ist das gesamte Testskript in der Sprache Ihrer Wahl. Ein Vorteil hierbei ist aber auch, dass Ihnen die Selenium IDE genau anzeigt, auf welche Weise Sie die einzelnen UI-Komponenten identifizieren können.

Der Nachteil der Selenium IDE ist, dass sie in erster Linie für das Prototyping und die Syntaxerstellung gedacht ist. Die Selenium IDE ersetzt kein vollwertiges Testen. Es bietet keine Möglichkeit dynamische Webanwendungen zu testen und Daten zu importieren, um datenbasierte Tests zu unterstützen.

Selenium Webdriver

Selenium Webdriver ist eine weiterentwickelte Version von Selenium RC und das am meisten verwendete Tool. Er nimmt Befehle über die Client-API entgegen und sendet sie an die Browser. Einfach ausgedrückt ist Selenium Webdriver ein browserspezifischer Treiber, der den Browserzugriff und das Ausführen der verschiedenen Browser unterstützt. Er bietet eine Schnittstelle zum Schreiben und Ausführen von Automatisierungsskripten. Jeder Browser hat unterschiedliche Treiber, um Tests auszuführen.

So verwendet Mozilla Firefox den Firefox-Treiber (Gecko-Treiber) und Google Chrome den Chrome-Treiber.

Selenium Grid

Selenium Grid basiert auf einer Hub-Knoten-Architektur und ermöglicht das parallele Teste. D.h. das Du mehrere Tests gleichzeitig auf mehreren Rechnern durchführen kannst.

Bei der Hub-Knoten-Architektur handelt es sich um eine Testumgebung mit mehreren Systemen. Das Hub ist das Master-System, dass die untergeordneten Systeme, als die Knoten steuert. Jeder Knoten ist ein System aus einem Betriebssystem und spezifischen Browser, auf dem der Testskript getestet werden soll. Von dem Hub auch kann überwacht werden, ob die Anwendungen auf den Knoten wie gewünscht laufen. Die Anweisungen werden vom Hub an die Knoten in der gewählten Sprache versendet.