Die Open-Source Lösung Cypress.io für automatisierte End-to-End-Webtests ist eine interessante Alternative zu Selenium und ein All-in-one-Test-Framework. Bisher waren End-to-End-Tests schwierig, mit Cypress konfigurieren und schreiben Sie Webtests, lassen diese laufen und können sie leicht debuggen.
Was unterscheidet Cypress von anderen Webtest-Lösungen?
Die meisten End-to-End-Test-Werkzeuge basieren auf Selenium und haben daher die gleichen Probleme gemein. Während Selenium Kommandos über das Netzwerk aus der Ferne ausführt, läuft Cypress in derselben Laufzeit wie die Anwendung. Sie können Cypress mit jedem Frontend-Framework verwenden. Alles, was in einem Browser läuft, lässt sich mit Cypress testen. Die Einrichtung ist schnell erledigt. Nach Ausführung der exe-Datei werden alle Treiber und Abhängigkeiten automatisch installiert. Ein Nachteil: Selenium unterstützt die meisten wichtigen Programmiersprachen wie PHP, Java, Ruby, Python und C#. Cypress funktioniert hingegen nur mit JavaScript. Wenn Sie jedoch mit JavaScript arbeiten, fällt Ihnen das Schreiben der Webtests in Mocha und Chai leicht.
Cypress und Selenium unterscheiden sich in der Architektur. Selenium besteht aus Bibliotheken und dem WebDriver, der den Browser kontrolliert. Der Selenium WebDriver bietet eine Programmierschnittstelle für das automatisierte Testen unter Verwendung des JSON Wire Protocols, um komplexe Datenstrukturen abzubilden. Anders Cypress: Wenn es zum UI-Testing eingesetzt wird, verwendet es seine eigenen DOM-Manipulationen und arbeitet direkt im Browser – ohne Netzwerk-Kommunikation. In der Folge beschreiben Experten Cypress häufig als das Entwickler-freundlichere Test-Automatisierungs-Tool.
Vorteile von Cypress gegenüber Selenium
-
- Cypress läuft direkt im Browser und ist schnell.
- Es ist in kurzer Zeit installiert und keine Konfiguration nötig.
- Tests lassen sich einfach debuggen.
- Die Unterstützung bei „wait of Element“ ist besser.
- Cypress kann Tests als Videos lokal aufzeichnen.
Nachteile
-
- Selenium unterstützt Java und Co, Cypress nur Javascript.
- Die Browser-Unterstützung gibt es nur für Chrome, Selenium ermöglicht hingegen Cross-Browser-Testing.
Wie wird Cypress installiert?
Cypress ist eine Desktop-Anwendung für Windows 7+, Mac OS 10.9+, Linux Ubuntu 12.04+, Fedora 21 und Debian 8.
Installation via NPM:
- $ npm install cypress –save-dev
Hinweis: Zuvor muss „npm init“ gestartet worden sein oder das Verzeichnis „node_modules“ beziehungsweise die Datei „package.json“ im Root-Verzeichnis vorhanden sein.
Anschließend ist Cypress im Verzeichnis „/node_modules“ installiert und die ausführbare Datei befindet sich im Verzeichnis „/node_modules/bin“. Hier starten Sie die Softwarelösung mit „cypress open“. Tests werden im Editor geschrieben und bei Fehlern gedebuggt. Wenn die lokale Installation läuft, können Sie Cypress in die CI-Umgebung integrieren. Die NPM-Einrichtung ist empfohlen.
Alternativ installieren Sie Cypress mit Yarn im Wunschverzeichnis:
- $ yarn add cypress –dev
Oder Sie nutzen den direkten Download:
Zu den Out-of-the-Box unterstützten Test-Frameworks innerhalb von Cypress gehören:
- Chai
- Chai-JQuery
- Mocha
- Sinon
- Sinon-Chai
Die Einsatzmöglichkeiten
Selenium ist als UI-Test-Framework gedacht und stößt darüber hinaus an seine Grenzen. Das in JavaScript geschriebene Cypress bietet deutlich mehr Möglichkeiten und eignet sich für:
- UI-Tests,
- Integration-Tests und
- Unit-Tests.
Fazit
Cypress.io ist ein ideales Werkzeug für JavaScript-Entwickler und die testgetriebene Entwicklung (TDD-Tests). Befinden sich im Team mehr Tester als Entwickler und kommt eine andere Sprache als JavaScript zum Einsatz, kann Selenium die bessere Lösung sein. Probieren Sie Cypress.io jetzt aus.
Bild von Photo Mix auf Pixabay
- Installation von Software auf einem Virtual Server – Beispiel CMS - 8. Mai 2023
- WordPress-Kundenseiten verwalten - 17. April 2023
- Screenshot erstellen auf iPhone und Smartphone – so einfach geht’s - 11. April 2023
Die von Ihnen hier erhobenen Daten werden von der Host Europe GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.hosteurope.de/AGB/Datenschutzerklaerung/