Cypress vs. Selenium
Von Äpfeln und Birnen
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 automatisieren 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, moderne und einfach zu bedienende Benutzeroberflächen zu erstellen. Dabei kommen Frameworks 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 asynchrone Vorgänge ist die Synchronisierung von Tests und getesteten Apps nicht einfach, aber trotzdem machbar (siehe WebDriverJS).