Was ist Cypress?
In diesem Artikel möchten wir Ihnen das Testingframework Cypress vorstellen. Seit der Erstveröffentlichung in 2017 ist Cypress zu einer Schlüsselfigur im Testingumfeld geworden: Mit mehr als 4.000.000 wöchentlichen Downloads ist es ohne Zweifel eines der beliebteren Packages in npm, dem Paketmanager für Node.js. Bei Cypress handelt es sich um ein Framework zum Testen von Webanwendungen oder von in JavaScript geschriebenen Komponenten. Die verwendete Plattform von Cypress ist Node.JS, die Sprache zum Schreiben der Testfälle ist JavaScript. Cypress wurde für zwei mögliche Anwendungsfälle entwickelt: Für End-to-End Tests (E2E) von Webanwendungen und für Unit Tests für JavaScript-Code.
Was sind End-to-End Tests? (E2E)
Von End-To-End Testing spricht man, wenn Geschäftsabläufe oder Szenarien einer Webanwendung durchlaufen werden, um ihre Fehlerfreiheit sicherzustellen. Technisch gesehen wird beim End-to-End-Testing mit Cypress eine Webanwendung in den Browser geladen und so getestet, als ob ein echter Benutzer seine Aktionen wie das Klicken auf Schaltflächen oder das Ausfüllen von Formularen durchführen würde.
Installation von Cypress
Die Installation von Cypress gestaltet sich sehr einfach. Hierzu muss lediglich die Plattform Node.JS auf Ihrem PC installiert sein. Anschließend können Sie in einem beliebigen JavaScript-Projekt Cypress mittels eines einzigen Befehls installieren. Während des Installationsvorgangs bietet Cypress Ihnen eine graphische Benutzeroberfläche, mittels derer Sie die Konfiguration von Cypress vornehmen können. Dies gestaltet den Installationsvorgang sehr einfach, da das Setup von Cypress automatisiert durchgeführt wird und Sie nach dem Installationsvorgang direkt mit dem Schreiben Ihrer Testfälle starten können. Nebenbei unterstützt Cypress die gängigsten Browser wie etwa Firefox, Edge und Chrome. Es müssen keine Treiber für die unterstützen Browser installiert werden, da Cypress sich um die Treiberverwaltung kümmert. Auch dies erleichtert das Aufsetzen einer Testumgebung.
End-to-End Tests (E2E) in Cypress
Aufbau von Testfällen
Testfälle in Cypress werden in Szenarien organisiert. Ein Szenario beschreibt hier ein abstraktes Feature bzw. einen Prozess der Website, wie etwa einen Loginprozess. Innerhalb der Szenarien lassen sich End-to-End Testfälle definieren, die wiederum Testschritte enthalten.
Das Schreiben von Testfällen in Cypress folgt dem Ansatz der strukturierten Skripterstellung. Die Testfälle werden in reinem JavaScipt-Code verfasst, jedoch stellt Cypress eine umfangreiche Bibliothek zum Abfragen und Manipulieren der Website zur Verfügung.
Wiederverwendbarkeit von Testskripten
Dadurch, dass Testfälle in Cypress in reinem JavaScript-Code geschrieben werden, ist es möglich, Testschritte in Funktionen zu kapseln und in anderen Testfällen wiederzuverwenden. Hierzu sollten die Tester:innen über solide Grundkenntnisse der Programmierung und der Modularisierung von Code verfügen. Es lassen sich somit auch parametrisierbare Funktionen implementieren, was ein nützliches Feature für strukturell ähnliche Testfälle ist.
Ausführung von Unit und End-to-End (E2E) Testfällen
Cypress stellt zum Ausführen von Testfällen eine graphische Benutzeroberfläche bereit. In dieser können Testfälle gestartet und bei der Ausführung beobachtet werden. Cypress zeigt zum einen die Reihenfolge der Testschritte und zum anderen die aktuelle Ansicht des Browsers an. Nach Ausführung des Testfalls können Sie einzelne Testschritte anklicken und sich Screenshots des jeweiligen Browserzustands zum Zeitpunkt der Ausführung des Testschritts anzeigen lassen. Dies ermöglicht ein gutes Debuggen von Testfällen.