👨🏫 Porady
Cypress vs Playwright - analiza popularności
Language
date
Aug 28, 2023
slug
cypress-playwright-statystyki-popularnosc
author
status
Public
tags
Playwright
Cypress
Porady
summary
Przeanalizujmy oficjalne pobrania Cypress i Playwright - jak wygląda ich popularność? Jak wyglądają trendy i przyszłość?
type
Post
updatedAt
Oct 11, 2023 09:13 AM
category
👨🏫 Porady
Popularność Cypress vs Playwright
W tym poście przyjrzę się popularności narzędzi Cypress oraz Playwright.
Odpowiem na pytanie:
- Jak wyglądają twarde dane i wykresy popularności?
- Dlaczego wykresy są często błędnie odczytywane?🤯
Liczba pobrań
Przeanalizujmy oficjalne pobrania Cypress i Playwright w tygodniowych odstępach (stan na 2023Q3).
Na poniższych wykresach uwzględniamy tylko języki JavaScript/TypeScript! Playwright jest dostępny również z Pythonem, Javą i C#.
Ostatni Rok
Porównanie bibliotek
cypress
oraz playwright-core
:Całkiem niezły wynik Playwright👏
Playwright tylko w JS/TS w 3 lata osiągną 75% popularności Cypress.
Przypomnijmy, że Cypress jest z nami od 2017 (wersja stabilna 1.0.0 wydana 10.2017 - źródło: 🔗https://www.npmjs.com/package/cypress/v/1.0.0 )
Z kolei Playwright od 2020 (wersja stabilna 1.0.0 wydana 05.2020 - źródło 🔗https://www.npmjs.com/package/playwright/v/1.0.0)
Gdyby można doliczyć pobrania Playwright w Java, Python i .NET (źródła na końcu wpisu) moglibyśmy spekulować, że oba frameworki są bardzo zbliżone co do popularności.
Czemu playwright-core
, a nie playwright
lub @playwright/test
?
Zobaczmy porównanie wszystkich paczek, które wchodzą w skład projektu Playwright (
playwright
, @playwright/test
oraz playwright-test
) z paczką cypress
:Objaśnienie paczek
Czym są te wszystkie paczki/moduły związane z Cypress i Playwright na powyższym wykresie?🤔
cypress
- paczka z Cypressem - zawiera w sobie test runner oraz cały kod wykorzystywany przez podstawę Cypressa (może być rozszerzona o wiele pluginów)
@playwright/test
- najpopularniejsza edycja projektu Playwright: Playwright Test. Jest to paczka, framework w którym znajdziemy mnóstwo gotowych elementów jak konfiguracja, raporty, zrównoleglenie testów etc. Jest ona pobierana przy tworzeniu projektu (przy wykorzystaniu polecenianpm init playwright@latest
)
playwright
- biblioteka do obsługi czystego Playwright. Wartościowa gdy chcemy samodzielnie użyć innego runnera (np. do BDD jak Cucumber), lub zaimplementować samodzielnie inne funkcje, które są nam potrzebne w ramach pracy z Playwright a kolidują one z elementami z@playwright/test
.
playwright-core
- paczka, która zawiera core kodu Playwright (bez przeglądarek), który jest wykorzystywany zarówno przez@playwright/test
, jak iplaywright
Często osoby nie mające doświadczenia z Playwright mogą mylnie interpretować dane co do pobrań, nie wiedząc jakie metryki śledzić. Np. widzimy, że w stosie Node.js najczęściej wykorzystywany jest
@playwright/test
i z tego powodu biblioteka playwright
jest raczej rzadko wykorzystywana. Również Max Schmitt, jeden z twórców PW, wyjaśnił, że paczki playwright
oraz @playwright/test
zależą od playwright-core
(🔗https://github.com/microsoft/playwright/discussions/11523). Aby obiektywnie stwierdzić ile pobrań w JS/TS ma Playwright należy albo dodać do siebie pobrania
@playwright/test
i playwrigh
lub po prostu sprawdzić liczbę pobrań playwright-core
.💡 Dlatego osobiście sugerowałbym porównywanie
playwright-core
vs cypress
😉Ostatnie 5 lat
Na tym wykresie możemy jasno zobaczyć wypłaszczony trend pobrań Cypress z ostatnich miesięcy i rewolucję jaką zapoczątkował Playwright:
Dane z npmjs
Wcześniejsze wykresy są oparte o pochodzące ze strony 🔗 https://www.npmjs.com.
Możemy też śledzić liczbę pobrań danej paczki bezpośrednio z jej strony (wykres z ostatniego roku). Dodatkowo nanieśliśmy linię która pokazuje trend dla liczby pobrań.
- Playwright (3.5M / tyg) - 🔗 https://www.npmjs.com/package/playwright-core
- Cypress (5.2M / tyg) - 🔗 https://www.npmjs.com/package/cypress
Popularność repozytoriów
Popularność repozytoriów (stan na 2023Q3):
- Cypress - 🔗 https://github.com/cypress-io/cypress (44.3k ⭐ na GitHub)
- Playwright - 🔗 https://github.com/microsoft/playwright (53.2k ⭐ na GitHub)
Popularność wg. State of JS
State of JS jest ankietą prowadzoną wśród developerów, którzy pracują w ekosystemie JavaScript. W 2022 w ankietach zebrano 39,472 odpowiedzi, a następnie zostały one przeanalizowane. Odpowiedzi dotyczą wykorzystywanych narzędzi, trendów, popularności, przyzwyczajeń itp.
W raporcie znajduje się też sekcja poświęcona narzędziom do testowania: 🔗https://2022.stateofjs.com/en-US/libraries/testing/
Znajdują się tam biblioteki do powszechnie wykorzystywane przez programistów np. do unit testów (mocha, chai, jasmine) oraz biblioteki wykorzystywane przez testerów (Cypress, Playwright, Selenium, Puppeteer, WebdriverIO).
Na poniższych wykresach możecie prześledzić rożne wskaźniki powiązane z danym narzędziem. Co ważne - dane pochodzą z pewnego wycinka społeczności. Myślę, że mogą być traktowane bardziej jako ogólny trend niż pełny wyznacznik aktualnej sytuacji😉
Retention - wskaźnik, który mierzy, jak często ludzie chcieliby skorzystać z danej usługi, produktu lub doświadczenia ponownie
Interest - jakie jest zainteresowanie daną usługą, produktem lub doświadczeniem wśród respondentów (Playwright zalicza tutaj jako jedyny duży wzrost)
Usage - informuje nas o częstotliwości użycia danej usługi, produktu lub doświadczenia
Awareness - mierzy, ile osób jest świadomych danej usługi, produktu lub doświadczenia w stosunku do całkowitej liczby respondentów
Przyszłość
Na koniec możemy jeszcze pospekulować kiedy Playwright przeskoczy Cypress w liczbie pobrań😉
Weź proszę pod uwagę, że są to czyste spekulacje i bardzo ogólne przyjrzenie się trendom. Nie stosujemy tu żadnych zaawansowanych technik i analizy danych😉
Biorąc pod uwagę maksymalną liczbę pobrań w tym roku to nastąpi to w okolicach połowy 2024 (jest to bardzo optymistyczne założenie!):
Bazując na statystykach maksów z początku 2022 i ostatnich z 2023 możemy się spodziewać takiego wydarzenia pod koniec 2024.
Możemy też przyjrzeć się trendom ze średnich z 2023.
Z nich również wynika, że przy utrzymaniu trendów - przecięcie nastąpi w 2024:
Czas pokaże, czy te estymaty pokryją się z rzeczywistością📈
Popularność Playwright w innych językach
Oficjalne pobrania PW (tygodniowo) (stan na 2023Q3):
- Python: ok 345k - 🔗 https://pypistats.org/packages/playwright
- Java: brak danych - 🔗 https://mvnrepository.com/artifact/com.microsoft.playwright/playwright
Podsumowanie
Czy statystyka liczby pobrań bibliotek jest poprawna i można się na niej opierać?
Przy analizowaniu 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.
Myślę, że można brać pod uwagę ogólny trend.
Może on pokazać, w którą stronę zmierza popularność danej biblioteki😉
PS. Czy to znaczy, że Cypress umiera i czas na Playwright?
Rzuć okiem na nasz artykuł i analizę tego tematu😉
Bonus
Do reprezentacji liczby pobrań najczęściej stosowana jest agregacja tygodniowej liczba pobrań. Dzieje się tak z powodu przestojów w pobraniach mających miejsce w dni wolne, które najczęściej przypadają na weekendy😊
Sprawdź sam wykres dzienny wspomnianych paczek z npmcharts: