Weboberflächen automatisch testen mit Selenium

Mit Selenium und etwas Code bringt man PCs dazu, wie ein Mensch zu klicken und zu tippen. Damit lassen sich Oberflächen von Webanwendungen automatisch testen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 17 Kommentare lesen
Automatisches Testen mit Selenium
Lesezeit: 14 Min.
Von
  • Nikolaus Schüler
Inhaltsverzeichnis

Webseite aufrufen, Formular ausfüllen, Button anklicken, prüfen, ob der richtige Text angezeigt wird. Webanwendungen testen ist einfach, aber stupide. Genau diese drei Schritte muss ein Entwickler nach jeder Änderung am Quellcode erneut ausführen, genau wie zahlreiche andere Abläufe. Selbst bei winzigen Bugfixes sollte er sich diese Arbeit auf keinen Fall sparen, denn jede Änderung könnte Seiteneffekte haben, die er übersieht. Damit der Entwickler noch Zeit zum Entwickeln hat, führt an automatischen Tests kein Weg vorbei.

Selenium erlaubt genau solche automatischen Tests von Web-GUIs. Das Framework steuert den Browser, wie ein Mensch das tun würde. Das heißt, es klickt auf Links und Buttons, füllt Textfelder aus oder wählt Einträge aus Listen aus. Zeigt der Browser dabei seine Oberfläche an, kann man dem Rechner sogar dabei zusehen, wie er wie von Geisterhand die Webseite bedient.

Selenium wird seit 2004 als freie Software entwickelt und steht unter der Apache License. Das Framework bringt eine Reihe von Bindings mit, sodass man es aus Java, C#, Ruby, JavaScript (mit Node.js) und Python nutzen kann. Wir zeigen Seleniums magische Fähigkeiten anhand einer winzigen Demo-App in Python. Die mit dem Python-Framework Flask programmierte Webanwendung zeigt lustige Kombinationen aus Vor- und Nachnamen an und erklärt bei Bedarf den Witz. Daher verwenden wir auch das Python-Binding von Selenium für die Tests. Selenium führt die Tests nicht selbst aus und prüft sie auch nicht. Darum kümmert sich das bei Python mitgelieferte unittest-Modul.