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.

Abbildung_-_Cypress - das JavaScript End to End Testing Framework

Cypress.io ermöglicht schnelle, einfache und zuverlässige Tests für Browser-Anwendungen.

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

Wolf-Dieter Fiege

Wolf-Dieter Fiege ist Senior Specialist für Content Marketing & SEO und Chefredakteur des Blogs der Host Europe GmbH, einem der größten Anbieter von Domain- und Webhosting sowie Serverprodukten in Europa.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

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/