👨‍🏫 Porady

Playwright popularniejszy niż Cypress!

Language
date
Feb 19, 2024
slug
playwright-popularniejszy-niz-cypress
author
status
Public
tags
Playwright
Cypress
Automatyzacja
summary
Czy to znaczy, że Cypress umiera i już jedynym wyborem jest Playwright?
type
Post
thumbnail
playwright-more-popular-than-cypress.jpg
updatedAt
Feb 21, 2024 08:08 AM
category
👨‍🏫 Porady
Jeszcze nie tak dawno w sierpniu analizowałem trendy popularności dla Playwright i Cypress (🔗Cypress vs Playwright - analiza popularności). Przypomnę tylko, że Cypress i Playwright to jedne z najczęściej pobieranych frameworków do testów e2e w ekosystemie JavaScript/TypeScript.
 
We wspomnianym wpisie pozwoliłem sobie na spekulacje i przewidywanie, kiedy Playwright przegoni Cypressa w liczbie pobrań. Bazując na niezmiernie dokładnych wykresach sporządzonych w Paincie😁, odczytałem, że nastąpi to bliżej połowy 2024 roku:
 
notion image
 
Jednak mamy dopiero pierwszy kwartał 2024 i…

ten moment właśnie nastał😲

 

Playwright przegonił Cypressa w liczbie pobrań!

 
Paczka playwright-core (czyli moduł, który jest zarówno w Playwright, jak i w Playwright Test) przekroczył liczbę pobrań Cypressa:
 
notion image
 
Zobaczmy jeszcze jak prezentują się poszczególne wersje Playwright.
 
notion image
 
Potwierdźmy te dane z innego serwisu - npmcharts:
notion image
 
Warto zaznaczyć, że paczki playwright i @playwright/test są powiązane mocno z liczbą pobrań playwright-core, jednak dokładne określenie liczby pobrań Playwright jest trudne ze względu na różne sposoby pobierania Playwright, szczególnie w kontekście Ciągłej Integracji (cachowanie paczek, dociąganie zależności).
Na koniec warto wymienić, że są to metryki agregowanych tygodniowych pobrań. W czasie tygodnia walka wciąż jest zacięta:
notion image

Najpopularniejsze frameworki do testów w JS/TS

 
Zestawmy jeszcze Playwright (🟢) z innymi popularnymi frameworkami e2e:
notion image
 

Po pierwsze:

Zauważ, że praktycznie wszystkie wspomniane frameworki w JavaScript/TypeScript (poza Playwright i Puppeteer) tracą na liczbie pobrań.
Puppeteer nie jest stricte frameworkiem do testów e2e dla cross browser testing (różnych przeglądarek) co znajdziemy w oficjalnej dokumentacji: 🔗https://pptr.dev/faq/#q-is-puppeteer-a-replacement-for-selenium-webdriver).
Ostatnio jednak wprowadzono w nim protokół BiDi będącym niejako przełomem w standaryzacji komunikacji z przeglądarkami, co de facto przybliża go do bycia frameworkiem cross browser 🔗https://pptr.dev/webdriver-bidi/.
Ciekawi nas jakie to wprowadzi zamieszanie na rynku, ale oficjalnie nie traktujemy go jeszcze jako pełnoprawnego konkurenta Playwright.
 

Po drugie:

Playwright po przegonieniu Cypress stał się najczęściej pobieranym narzędziem do testów e2e cross browser w ekosystemie JavaScritpt/TypeScript.
 

Po trzecie:

Zobaczmy również jak to wyglądało na przestrzeni ostatnich 5 lat:
notion image
 
🤔
Zauważ, że w ciągu 2 lat Playwright osiągnął liczbę pobrań taką, jak np. Cypress w ciągu 5 lat. Nasze pierwsze materiały o Playwright publikowaliśmy już w 2021 roku! Kiedy Playwright był… zresztą sam zobacz na wykres.
 
Playwright to ewenement i odpowiedź na potrzeby testerów. To też znak naszych czasów. Ktoś inwestuje potężne pieniądze w rozwój nowego narzędzia, które bierze najlepsze cechy z innych narzędzi. Przypomnę, że twórcy Playwright to byli twórcy Puppeteer. I przy okazji wzięli to co najlepsze z Cypress.
 
I w ciągu zaledwie 2 lat z niszowego narzędzia mamy lidera w segmencie frameworków e2e cross browser.
 
Testerzy muszą się mieć na baczności i szybko nadrabiać nowe technologie.
Warto nowe standardy (mockowanie backendu, zrównoleglenie testów z zarządzaniem zależnościami), gdyż ekosystem narzędzi zmienia się w ekstremalnym tempie, i przynosi nowe możliwości zapewnienia jakości.
 
Pozostaje pytanie kto będzie kolejnym liderem i wywróci te statystyki (a może już jest Puppeteer? Ale tu jest sporo pytań: jak ma się wydajność Webdriver BiDi do CDP, co z narzędziami do debug jak Trace Viewer czy UI Mode, jak wygląda wsparcie dla Safari (czyli całego ekosystemu przeglądarek na iOS)? Potrzebna by była by głębsza analiza. Dlatego nie umieściłem go w tym pięcioletnim zestawieniu.
 
Wróć jeszcze na chwilę do wykresu i spójrz na liczby pobrań - sumaryczne wszystkich frameworków w JS/TS:
2021 - <4 milionów pobrań tygodniowo
2024 - >14 milionów pobrań tygodniowo
 
W trzy lata mamy olbrzymi skok.
JS i TS nabiera tempa, zresztą TypeScript wyprzedził Javę w ostatnim raporcie z GitHub.
notion image
 
Wygląda na to, że nie tylko Playwright rośnie w siłę ale i popularność domyślnego języka w którym jest wytwarzany i najczęściej wybierany.
 

Co dalej?

Powyższe analizy mogą nasuwać pewną myśl:
 
Playwright ekspresowo zyskuje popularność i zaczyna dominować w sektorze e2e cross browser testing. Szczególnie nad swoim bezpośrednim konkurentem - Cypressem.
 
Czy to oznacza, że…
 
Inne frameworki e2e umierają! Wszyscy migrujmy do Playwright! To jedyne słuszne rozwiązanie.
 
Zdecydowanie byłbym przeciwny takim stwierdzeniom. Np. Cypress nadal jest i jeszcze długo będzie bardzo popularnym narzędziem do automatyzacji testów w JavaScript i TypeScript.
Każdy z nich posiada swoje mocne i słabe strony, które uważam, że należy uwzględnić przy wyborze narzędzi w projekcie.
 
Czy to oznacza, że Playwright jest najpopularniejszy w świecie frameworków e2e cross browser?🤔 Czy statystyka liczby pobrań bibliotek jest poprawna i można się na niej opierać?🤔
 
Przy analizie i opieraniu się o tego typu dane trzeba brać różne czynniki pod uwagę. Moduły są wykorzystywane zarówno w codziennej pracy, nauce, jak i w procesie CI/CD. Tam nawet kilkadziesiąt razy dziennie moduły są pobierane podczas budowania wersji i uruchamiania testów. To może powodować dodatkowe podbijanie statystyk.
 
Liczba pobrań to jedna z metryk. Do tego warto brać pod uwagę też np. popularność repozytoriów, liczbę projektów wykorzystujących dane narzędzie, ankiety prowadzone wśród developerów.
 
Statystyki liczby pobrań mogą być przydatnym wskaźnikiem popularności danego narzędzia. Jednak nie zawsze odzwierciedlają spełnienie konkretnych potrzeb projektu. Warto również zwrócić uwagę na inne czynniki, takie jak:
  • aktywność społeczności,
  • dostępność dokumentacji,
  • wsparcie dla różnych przeglądarek,
  • elastyczność,
  • opinie użytkowników.
 
Jednak analizując:
  • aktualne liczby pobrań
  • ekspresowy wzrost popularności Playwright
  • stagnację trendu liczby pobrać innych frameworków e2e (np. liczba pobrań Cypressa od wielu miesięcy utrzymuje się na stałym poziomie)
 
…może oznaczać coraz częstsze wykorzystanie Playwright w projektach i migracje testów z innych frameworków😉
 

Podsumowanie

 
Moim zdaniem:
  • skok popularności Playwright jest powyżej moich oczekiwań - możliwe, że rynek podchodzi z bardzo dużym zaufaniem do tego narzędzia
  • Cypress ma nadal bardzo dużo pobrań i jest nadal wykorzystywany w wielu projektach🙌
    • zyskał dużą popularność na przestrzeni ostatnich lat
    • ma nadal bardo duże community
    • wielu Dev/QA od lat specjalizuje się w jego wykorzystaniu
    • setki projektów wykorzystują go jako podstawę frameworka do testów automatycznych
    • koszt migracji wszystkich projektów z Cypress do Playwright byłby gigantyczny😉
  • migracje do Playwright będą przybierały na popularności, ale jeszcze nie zwiastują szybkiego końca np. Cypressa
  • inne frameworki (Playwright, jak i Cypress czy Puppeteer) będą nadal bardzo popularne, mają swoje mocne i słabe strony, które należy rozważyć w projektach
 
💡
Dokładne wady i zalety Cypressa i Playwright opisałem w artykule: 🔗Czy Cypress umiera i czas na Playwright?
 
Nie tylko liczba pobrań się liczy, ale bardzo ważne jest abyś pamiętał o dobrej analizie:
  • wad/zalet danego narzędzia
  • potrzeb projektowych
  • przypadków, jakie chcesz zautomatyzować
  • umiejętności zespołu
  • i ogólnego kontekstu zespołu/projektu/klienta - każde z dostępnych narzędzi ma swoje wady i zalety!🙌
 
Dobre rozpisanie powyższych aspektów pozwoli Ci wybrać narzędzie, które będzie najlepsze dla Ciebie👨‍🏫
 
Uważam, że kierowanie się tylko faktem, że coś jest “modne i popularne” może być dużym błędem. Ważne jest też doświadczenie i umiejętność wykorzystania dobrodziejstw danego narzędzia😉
 
💡
Jeśli planujesz wprowadzić Playwright do swojego projektu, to zapoznaj się z następującymi materiałami:
  • Mega darmowe materiały na YouTube wprowadzające do Playwright:
Playwright - Twój pierwszy test automatyczny #01 JS/TS (Sekcja 01, Lekcja 01)
🎬 Playlista na YT: https://www.youtube.com/playlist?list=PLfKhn9AcZ-cD2TCB__K7NP5XARaCzZYn7 🙋‍♀️ Kod, polecenia i linki: https://jaktestowac.pl/lesson/pw1s01l01/ 🙋‍♀️ Cały kurs: Praktyczne wprowadzenie do testów automatycznych z Playwright: https://jaktestowac.pl/course/playwright-wprowadzenie/ 🙋‍♀️ Nasze materiały o Playwright: https://jaktestowac.pl/playwright/ 🌐 Testowana strona: https://demo-bank.vercel.app/ Jest to pierwsza lekcja z cyklu nauki automatyzacji testów od podstaw z użyciem Playwright. Język jaki będzie wykorzystywany do budowy kodu testów to TypeScript (TS). Ten tutorial to omówienie nie tylko frameworka Playwright ale także tworzenie rozwiązania do automatyzacji manualnych testów. Dzięki temu tester / QA ma szansę poznać proces automatyzacji testów od zupełnych podstaw. Uzyskane testy automatyczne są bardzo uproszczone abyś łatwo mógł zrozumieć czym jest proces automatyzacji. Poprzez kolejne lekcje usprawniamy kod testów dzięki temu nabierają one szybko formy, którą tester może wdrożyć we własnym projekcie. Rozdziały: 00:00 - Powitanie 00:42 - Instalacja IDE: Visual Studio Code 02:48 - Instalacja środowiska uruchomieniowego NodeJS 06:05 - Strona internetowa do testów 08:11 - Przygotowanie projektu 09:35 - Struktura projektu z Playwright 12:54 - Generowanie kodu testów 16:21 - Opis wygenerowanego kodu 17:25 - Uruchomienie testów 20:02 - Raporty po testach 21:19 - Testy z widoczną przeglądarką 21:59 - Uruchomienie raportu z pliku 22:38 - Asercje w testach 25:05 - Test zakończony niepowodzeniem 28:34 - Podsumowanie i informacje na koniec
Playwright - Twój pierwszy test automatyczny #01 JS/TS (Sekcja 01, Lekcja 01)
 
Pozwolą Ci one poznać wady i zalety tego narzędzia😉 Tym samym, zobaczysz, czy Playwright jest odpowiednim rozwiązaniem dla Ciebie i Twojego projektu🙌