iX 5/2019
S. 60
Review
Frontend-Testing

Cypress vs. Selenium

Von Äpfeln und Birnen

Rudolf Grötz

Cypress will Selenium seine Position als Mittel der Wahl zur Testautomation von Webanwendungen streitig machen. Allerdings sind die Meinungen zu dieser Behauptung geteilt.

Wer End-to-End-Tests (E2E) für klassische Webanwendungen auto­matisieren wollte, setzte ­lange Zeit auf Selenium. Seit ein paar Jahren steigt jedoch die Zahl der Single-Page Applications (SPA) mit komplexem JavaScript-Code. Sie erfreuen sich gro­ßer Beliebtheit, wenn es darum geht, mo­derne und einfach zu bedienende Benutzer­oberflächen zu erstellen. Dabei kommen Frame­works wie React, Vue.js oder Angular zum Einsatz.

SPA verarbeiten hauptsächlich asynchrone Requests, was Tests mit Selenium erschwert. Als das Testwerkzeug vor mehr als zehn Jahren aufkam, sahen Webanwendungen noch anders aus. Sie waren einfach und zustandslos. Benutzerinteraktionen verursachten eine vollständige Seitenaktualisierung. Asynchrone Vorgänge waren selten, JavaScript wurde viel mehr als eine einfache Skriptsprache eingesetzt, die der Formularvalidierung diente oder Animationen ermöglichte. Mit Selenium GUI-Tests für Webanwendungen von heute zu schreiben, ist eine Herausforderung. Aufgrund der mangelhaften Unterstützung für asyn­chrone Vorgänge ist die Synchronisierung von Tests und getesteten Apps nicht einfach, aber trotzdem machbar (siehe WebDriverJS).

Kommentieren