Wyjątkowa okazja na szkolenie ISTQB online - teraz tylko 999 zł netto! (najtaniej na rynku - szkolenie dofinansowane!). Zapraszamy również na 2 dniowe szkolenie API teraz tylko 459 zł!

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 WebDriver - rozwiązanie dla testów aplikacji

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

Cypress - narzędzie do testowania frontendu aplikacji

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

Selenium WebDriver vs Cypress - porównanie

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany.

Pozostałe:

Dobry tester oprogramowania, czyli kto?

Tester oprogramowania to osoba odpowiedzialna za weryfikowanie jakości tworzonej aplikacji - pod kątem poprawności działania, ale także spełniania przyjętych na początku projektu założeń. Odpowiada za poszukiwanie luk, sprawiających, że oprogramowanie nie spełnia...

Testowanie regresywne

Każde oprogramowanie jest co jakiś czas odświeżane, rozszerzane i zmieniane. Zmiany w kodzie mogą dotyczyć wielu aspektów, m. in.: dodawania, usuwania lub modyfikowania funkcji, adaptacji oprogramowania do nowych warunków, systemów czy umożliwienia wykorzystania...

Siedem zasad testowania oprogramowania

Testowanie oprogramowania jest nieodłączną częścią procesu tworzenia oprogramowania: pozwala znaleźć błędy, luki i defekty w produkcie, zbadać jakość i wydajność oprogramowania, a także ocenić, na ile testowany system jest zgodny z zadaną specyfikacją oraz wymaganiami...

Testowanie API – wprowadzenie

Aplikacje, systemy, elementy oprogramowania potrzebują się ze sobą komunikować. Dokładnie tak jak ludzie. Komunikujemy się, aby realizować pewne rzeczy lub wymieniać się informacjami. W tym celu wykorzystujemy różne sposoby komunikacji takiej jak: gesty, słowa, pismo,...

Asercje w Selenium

    W załączonych fragmentach kodu z poprzednich lekcji, na pewno zauważyłeś instrukcje o nazwie Assert. Właśnie o szeroko pojętych asercjach będzie traktowała dzisiejsza lekcja. Rozłożymy sobie Asercje na czynniki pierwsze. Omówimy przykłady...