TYPO3-Websites automatisch testen

Unser Kollege Christian Keuerleber hat beim TYPO3.org-Sprint eine Lösung auf Basis von Codeception vorgestellt, mit der sich Websites automatisch durchtesten lassen. Die Software kann auf GitHub heruntergeladen werden.

Lesedauer: ca. 2 Minuten

Während des TYPO3.org-Sprints im November hat Christian ein Tool auf Basis von Codeception vorgestellt. Damit lässt sich das Frontend einer Website automatisch durchtesten, also den Browser fernsteuern und die Ergebnisse auswerten, zum Beispiel mit Hilfe automatischer Formulareinträge, Klicks und anderer simulierter User-Aktionen. 

So beschreibt Christian den Ansatz:

Jeder Entwickler hat die Erfahrung gemacht, dass neue Änderungen an einem Projekt den bestehenden Code unbrauchbar machen können. Im schlimmsten Fall schleichen sich diese neuen Fehler unbemerkt in das Produktionssystem ein. Um sicherzustellen, dass eine Website funktioniert, sollte man idealerweise vor der Implementierung des Codes automatisierte Tests durchführen. Während die meisten Entwickler mit Funktions- und Unit-Tests sehr vertraut sind, scheuen sie oft vor Frontend-Tests zurück. Ich möchte zeigen, wie einfach es sein kann, browserbasierte Tests mit Codeception einzurichten und durchzuführen. Auf diese Weise kann man sichergehen sein, dass das Frontend nicht unbemerkt zusammenbricht. 
Christian Keuerleber

Die Lösung lässt sich einfach für andere TYPO3-Installationen adaptieren und ist äußerst hilfreich - nicht nur beim Durchchecken möglicher Fehler während der Entwicklung, sondern auch zum regelmäßigen "Monitoring-Check". Wer direkt zum Download will, der wird hier auf GitHub fündig.

Hintergrund: Codeception und Frontend-Testing

Zuvor hatte Christian seine Lösung bei den TYPO3 Developer Days präsentiert. Hier sein Vortrag auf YouTube (englisch):

Nach dem Vortrag wurde Christian gefragt, ob er die Lösung nicht für die TYPO3.org-Website implementieren wolle. Gesagt, getan.

Dazu war es lediglich notwendig, Konfigurationsdateien zu schreiben und Pakete einzubinden. Um das Paket auf andere Websites zu übertragen, müssen lediglich die Konfigurationsdateien rüberkopiert und ein paar einfache Parameter verändert werden - fertig.

Die Lösung bietet zwei Einsatzgebiete: Per Monitoring lässt sich auf dem Live-System regelmäßig überprüfen, ob alles läuft. Dagegen laufen die Acceptance-Tests in einer eigenen Umgebung. Hier gibt es immer einen definierten Datenstand, der am Ende wieder zurückgesetzt wird. Dann folgt der nächste Test. Der Vorteil ist, dass weder das Testsystem noch das Live-System betroffen sind.

Bei TYPO3.org kommt beides zum Einsatz. Für drei der TYPO3-Websites laufen Acceptance-Tests, für diese drei und eine weitere auch Monitoring-Tests. 

Ideal: Ein Werkzeug, eine Aufgabe

Wie kam es eigentlich zu dieser Entwicklung? Bei punkt.de hatten wir überlegt, wie wir Tests schreiben können. Wir führen seit Jahren verschiedene automatisierte Tests durch. Das Schöne an dieser Codeception-Lösung ist aber, dass die Browser-Tests stehen für sich stehen: Auch wenn Codeception noch andere Dinge kann, wird dieses Tool für nichts anderes verwendet. Damit können wir das Tool auf eine ganz bestimmte Art benutzen, dafür aber richtig. Ein Werkzeug, eine Aufgabe.

Die Ideen sind dokumentiert, und so entstand ein Lösungspaket. Wie gesagt, wer sich das auf GitHub anschauen möchte - hier entlang.

„Unsere Projekte für TYPO3.org haben auch das Ziel, Best Practice-Beispiele zu präsentieren. Wir wollen zeigen, wie man mit TYPO3 gute Websites macht. Christians Codeception-Lösung für automatische Tests ist ein gutes Beispiel dafür.“
Thomas Löffler, team leader TYPO3.org
Teilen:

Weitere Beiträge

$success = $this -> getConnected();
Mihriban Dalmis, Entwicklung bei punkt.de
Arbeiten bei punkt.de