Selenium WebDriver VS Cypress | Quality Island

Selenium WebDriver VS Cypress

sty 30, 2021

Z pewnością Cypress miał mocne wejście w świat automatyzacji testów. Jednak od jego debiutu minęło już sporo czasu. Zamiast rozpychać się na rynku – Cypress widocznie mocno spuścił z tonu.
Nie oznacza to jednak, że przestał się rozwijać, gdyż cały czas rozwiązanie to dostaje kolejne poprawki i usprawnienia (chociażby ostatnio dodał możliwość korzystania z innych przeglądarek niż tylko Chrome). Cypress miał zdetronizować Selenium WebDriver, ale jak pokazuje rynek – na to lekko mówiąc się nie zanosi. Ileż to już razy słyszeliśmy, że stare poczciwe Selenium w końcu doczekało się godnego następcy… Jednak król nadal na tronie. A na horyzoncie przed Selenium WebDriver nieśmiało widać już premierę nowej wersji o numerze 4.
Moim zdaniem jednak Cypress wydaje się na tyle ciekawym narzędziem, z pewną dozą świeżego powiewu technologicznego, ze warto zestawić go i dokonać analizy z Selenium Webdriver. Zatem do dzieła.

Selenium WebDriver


Selenium to rozwiązanie służące do automatyzacji testów aplikacji webowych. Tak ja w przypadku Cypress – jest zupełnie darmowe, oparte na licencji open source. Był przez wiele lat i jest nadal niekwestionowanym liderem rynku narzędzi do automatyzacji testów aplikacji internetowych. Rozwiązanie to zapewnia nam współpracę ze wszystkim popularnymi przeglądarkami internetowymi- wykorzystując do tego celu ich natywne sterowniki (drivery) np. ChromeDriver (przeglądarka Chrome), czy GeckoDriver (przeglądarka FireFox). Warto podkreślić, że do pracy z Selenium Webdriver możemy korzystać z wielu popularnych języków programowania np. Java, C#, JavaScript, Python czy Ruby. Dla mnie jedną z największych zalet tego narzędzia jest też bardzo pokaźne internetowe Community (którego tak bardzo brakuje Cypressowi). Na szereg popularnych problemów można szybko i łatwo znaleźć odpowiedź w sieci.

Zalety


• Darmowe narzędzie (licencja open-source)
• Ogromne internetowe Community
• Kompatybilność z najpopularniejszymi systemami operacyjnymi (Windows, Linux, Max OS)
• Pełna obsługa wielu popularnych języków programowania
• Kompatybilność z najpopularniejszymi przeglądarkami internetowymi (Chrome, FireFox, Edge, Safari)
• Kompatybilność z wieloma szeroko stosowanymi narzędziami jak np. Maven, Jenkins, Docker
• Stosunkowo liczne grono specjalistów deklaruje chęć pracy w Selenium


Wady


• Brak wbudowanych mechanizmów raportowych
• Do pracy niezbędne są wysokie umiejętności programowania
• Czasochłonny proces tworzenia skryptów testowych

Cypress

Coraz częściej porównywany jest do Selenium, ale trzeba wiedzieć, że jest to zupełnie inne narzędzie pod kątem architektury oraz sposobu działania. To właśnie architektura i sposób w jaki działają testy jest największa widoczną różnicą między Selenium. Swoją lekkość , zwinność i przede wszystkim szybkość zawdzięcza temu, że w przeciwieństwie do Selenium, kod napisany w Cypress działa bezpośrednio w przeglądarce (jest niejako wstrzykiwany do testowanej aplikacji www) – w Selenium działa to zupełnie inaczej, gdyż testy są wykonywane poprzez Remote Driver.
Cypress to typowe narzędzie do testowania frontendu aplikacji webowych. Cypress niestety oferuje pracę tylko w jednym języku programowania – JavaScript. Moim zdaniem jest to jedno z największych ograniczeń tego rozwiązania. Wart podkreślić, że narzędzi to cały czas się rozwija i usprawnia. Jednak w oczy wciąż rzuca się brak internetowego Community. Wiele firm z bardzo dużym dystansem patrzy na to rozwiązanie w myśl zasady „znany wróg jest lepszy niż nieznany przyjaciel”. Selenium w odróżnieniu do Cypress, jest już obecne na rynku przez wiele, wiele lat i jest narzędziem sprawdzonym (mimo swoich ograniczeń i wad). Selenium jest więc narzędziem brzydko mówiąc „wygrzanym na rynku” bezpiecznym i co najważniejsze przewidywalnym. Tych wszystkich zalet brakuje na ten moment Cypressowi.


Zalety


• Obsługa różnych przeglądarek internetowych (FireFox, Edge, Chrome)
• Może wykonywać polecenia w czasie rzeczywistym, oferując wizualną informację zwrotną przez cały czas
• Szczegółowo dokumentuje cały proces testowania
• Automatyczna operacja przewijania przed wykonaniem konkretnych akcji na elementach
• Darmowy
• Szybki, wydajny
• Świetnie zorganizowana dokumentacja



Wady


• Możliwość pisania testów tylko w jednym języku programowania – JavaScript
• Obsługa tylko testów frontendowych
• Nie można go używać do jednoczesnej obsługi dwóch przeglądarek
• Cypress nie obsługuje wielu kart i oferuje jedynie ograniczoną obsługę ramek iFrame
• W obecnej formie Cypress nie jest kompatybilny z przeglądarkami takimi jak Explorer czy Safari