👨🏫 Porady
Playwright popularniejszy niż Cypress!
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:
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:
Zobaczmy jeszcze jak prezentują się poszczególne wersje Playwright.
Potwierdźmy te dane z innego serwisu - npmcharts:
Źródło: 🔗https://npmcharts.com/compare/cypress,playwright,playwright-core,@playwright/test?interval=7
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:
Najpopularniejsze frameworki do testów w JS/TS
Zestawmy jeszcze Playwright (🟢) z innymi popularnymi frameworkami e2e:
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:
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.
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:
- Kompleksowy 🔗Program Testy Automatyczne z Playwright
- Mega darmowe materiały na YouTube wprowadzające do Playwright:
Pozwolą Ci one poznać wady i zalety tego narzędzia😉 Tym samym, zobaczysz, czy Playwright jest odpowiednim rozwiązaniem dla Ciebie i Twojego projektu🙌