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:
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.
Kommentare