Playwright vs. Cypress: Souboj dvou automatizačních nástrojů

Automatické testování se stává stále kritičtější součástí testovacího procesu. Bouřlivý vývoj aplikací a rostoucí tempo technologií předurčují, že bude stále nutnější. Nástroje jako je například Playwright a Cypress jsou dnes jedny z nejznámějších automatizačních nástrojů. Jak si ale stojí proti sobě? Na to se podíváme dnes v souboji dvou titánů Playwright vs. Cypress.

Playwright vs Cypress souboj automatizačních nástrojů

Co je to automatické testování?

Pro mnohé je to samozřejmost, ale někdy stojí za to zopakovat si, co to vlastně je automatické testování.

Automatizované testování, je proces, v němž software automaticky provádí a vyhodnocuje testovací scénáře na softwarovém produktu. Je to alternativa k manuálnímu testování, kde testy provádí člověk.

Automatizované testování hraje klíčovou roli ve:

  1. Zrychlení Vývojového Cyklu,
  2. Zlepšení Kvality,
  3. Opakované Použití.

Je důležité správně vybrat nástroj pro automatizace, proto se ve dnešním souboji Playwright vs. Cypress podíváme na tyto dva frameworky.

Představení Playwright

Playwright je open-source automatizační nástroj vyvíjený společností Microsoft. Nabízí veškeré služby zdarma. Jelikož se jedná o nástroj v ekosystému Microsoftu, nabízí jednoduchou integraci do jeho dalších nástrojů jako jsou:

  • Visual Studio Code
  • GitHub
  • GitHub Actions

Nabízí širokou podporu webových i mobilních prohlížečů a aplikací. Soustředí se na to, aby byl nástroj dostupný ve všech prohlížečích, platformách a s jedním API.

Výhody Playwright

  • Všestranně zaměřený,
  • Součástí Microsoft ekosystému,
  • Cross-platform a mobilní testování

Nevýhody Playwright

  • Komplikovanější než Cypress,
  • Horší dokumentace,
  • UI aplikace ještě potřebuje doladit.

Představení Cypress

Cypress je automatizační framework pro webové aplikace, který se soustředí se na testování přímo v prohlížeči. Jedná se o open-source zdarma nástroj.

Důraz Cypress klade na jednoduchost, dobrou dokumentaci a rychlou učící se křivku.

Cíl vývojářů je vybudovat open source ekosystém, který podporuje produktivitu, dělá testování příjemnou zkušeností a dělá vývojáře šťastné.

Cypress také nabízí placený enterprise nástroj Cypress Cloud, který se zaměřuje na integraci do Continuous Integration prostředí, nabízí pokročilé metody analýzy a debuggingu.

Výhody Cypress

  • Jednoduchý na používání
  • Úžasná aplikace,
  • Dobrá dokumentace.

Nevýhody CYPRESS

  • Chybí mobilní testování,
  • Nemožnost testování více tabů/oken,
  • Řešení nestandardních situací je komplikované

Srovnání nástrojů

Soupeře už známe. Pojďme se podívat na srovnání obou frameworků.

Playwright vs Cypress, souboj robotů

Cenový model

Oba dva nástroje jsou open-source a zdarma. Cypress ovšem nabízí i variantu Cypress Cloud, která je placená. Ze strany Microsoftu můžu zmínit GitHub a Azure. Oba nástroje můžete pro automatizaci využít zdarma.

Jednoduchost používání

Jak Cypress, tak Playwright jsou moderní nástroje, které je jednoduché používat. Srovnání jednoduchosti je subjektivní, takže se naše zkušenosti mohou lišit. Rád se dozvím vaše postřehy v komentářích.

Cypress buduje svou strategii na co nejjednodušším používání. Nainstalujete Cypress a můžete vyvíjet. To samé platí o jeho aplikační API. Jeho největší výhodou je podle mého názoru jeho aplikace (můžete znát pod názvem Test Runner), která nabízí možnost spouštění testů, nahrávání snapshotů DOM a jednoduchém debuggování. Testy v Cypressu opravu může psát téměř každý.

Playwright má oproti Cypressu o něco málo složitější API. Rozdíl je to ovšem malý. Microsoft se totiž až tolik nezaměřuje na jednoduchost jako takovou, ale zejména na funkčnost a univerzálnost Playwrightu. I když už má dnes UI podobné Cypress aplikaci (Test Runner), tak se bohužel Cypressu po stránce jednoduchosti a intuitivnosti nevyrovná.

Proto musím říct, že v této kategorii je za mě vítěz Cypress.

dokumentace

Playwright mi jeho dokumentací trochu připomíná období, kdy čtení dokumentace zejména pro juniorní vývojáře automatických testů byla tak trochu hororová záležitost. Neříkám, že Playwright dokumentace je špatná, to vůbec ne. Občas v ní ale najít to, co člověk potřebuje, je trochu komplikovanější.

Oproti tomu Cypress má dokonce jeden ze svých cílů zaměřený na přehlednost jeho dokumentace. Já osobně jsem například lepší produktovou dokumentaci neviděl. Pro srovnání níže naleznete screenshot z dokumentací obou nástrojů na funkci: click.

Funkcionality

Tady už se nám karty obrací ve prospěch Playwrightu. Oproti Cypressu totiž cílí více na univerzální používání. Cypress bohužel zaujal stanovisko, že některé funkce dělat prostě nebude.

O jaké funkce se jedná?

  • Mobilní testování
  • Testování více tabů/oken prohlížeče
  • Paralelní testování více prohlížečů zároveň
  • Neizolované testy

Cypress dohání jeho vlastní jednoduchost. Zhruba 80 % všech možností otestujete skvěle. Jakmile ale budete řešit komplexnější testy, kde si budete chtít předávat data nebo řešit složité případy, narazíte na jeho hranice. Většina věcí lze „hacknout“, ale v tu chvíli se zamotáte do dlouhých bloků kódu, které nakonec stejně nemusí fungovat.

Trochu mi to připadá jako na souboj mezi Applem a Androidem (mám doma obojí). Apple razí cestu jednoduchosti za cenu toho, že toho v iPhone spoustu nenastavíte. Android je sice otevřenější co se týče nastavení, ale je komplikovanější.

V tabulce níže srovnávám podporu typů akcí v jednotlivých frameworcích, abyste si udělali přehled.

Oblast Playwright Cypress
Webové testování
API testování
Mobilní testování – emulace Android, Safari
Mobilní testování – zařízení Android
Databáze
Paralelní běh
Headless mód

Playwright zkrátka ztrácí v jednoduchosti a jeho učící křivka je pomalejší. Co se týče komplexních funkcionalit, nabízí víc možností a větší svobodu. V této kapitole Playwright vs. Cypress vítězí… Playwright!

Podpora prohlížečů

Souboj Cypress vs. Playwright je i o podpoře prohlížečů. Zde vyhrává opět Playwright a to zejména podporou mobilních prohlížečů.

Prohlížeč Playwright Cypress
Chromium
Firefox
Webkit (Apple Safari)
Chrome Mobile
Mobile Safari

Podpora programovacích jazyků

Cypress běží pouze v prohlížeči v Javascript, což ho bohužel limituje pouze na již zmíněný Javascript a Typescript.

Playwright má nabídku jazyků daleko širší:

Jazyk Playwright Cypress
Javascript
Typescript
Python
Java
.NET

Integrace s CI/CD

Oba dva nástroje umožňují díky použitím moderních technologií do většiny CI/CD aplikací. To znamená, že nebudete mít problém například v:

  • Docker
  • GitHub Actions
  • Azure Pipelines
  • CircleCI
  • Jenkins
  • Bitbucket Pipelines
  • GitLabCI
  • AWS CodeBuild

Oba nástroje pak v dokumentaci mají užitečné návody, jak nástroje rozběhat:

Podpora, Komunita

První public release Cypressu proběhl v říjnu 2017 a ve vývoji je od roku 2014.

Playwright oproti tomu zažil první release až v lednu 2020. To znamená téměř 2,5 roku náskoku pro Cypress. A to je v IT hodně.

Vidět to je hodně na komunitním obsahu, kde dohledat řešení pro Cypress je stále jednodušší než pro Playwright. Playwrightu ale díky jeho všestrannosti raketově roste komunita a dle mého názoru nebude trvat dlouho a Cypress dorovná.

Pojďme se podívat na čísla v souboji Playwright vs. Cypress.

NástrojNPM totalNPM Weekly
(7.8.2023)
Github ⭐️GitHub
Contributors
Playwright105 764 7892 535 65853 700442
Cypress578 001 3305 112 20544 400445

Cypress má téměř 6x více stáhnutí, ale když srovnáme týdenní stáhnutí dle NPM, tak vidíme, že rozdíl je již jen 2 násobný. Pojďme se podívat ještě na vývoj týdenních stažení na obrázcích níže:

Playwright týdenní stažení (2022-2023)

Cypress týdenní stažení (2022-2023)

I na vývoji týdenních staženích je vidět, že Playwright zaznamenává daleko výraznější růst, než Cypress. Zdroj dat: npm-stat.

Stále ale platí, že Cypress je mnohem více rozšířený a má větší komunitu, než Playwright. Otázkou zůstává na jak dlouho.

Na základě našeho zkoumání nástrojů Playwright a Cypress můžeme konstatovat následující:

  • Popularita v NPM:
    • Playwright má celkových 105 764 789 stažení z NPM, z čehož 2 535 658 bylo během posledního týdne.
    • Cypress vede s celkovým počtem 578 001 330 stažení z NPM a 5 112 205 staženími za poslední týden.
  • GitHub Metriky:
    • Playwright má 53 700 hvězdiček na GitHubu a 442 přispěvatelů.
    • Cypress, na druhou stranu, má 44 400 hvězdiček a 445 přispěvatelů.

Který je pro tebe ten pravý?

Playwright vs. Cypress souboj je téměř u konce. Který si ale vybrat? Záleží zejména na tvých potřebách.

Testuješ méně komplexní aplikaci, kde je nejdůležitější webová aplikace? Programátoři aplikace píší v Javascript nebo Typescript? Pak je pro tebe nejspíš vhodnější Cypress.

Pokud jsi ale na projektu, kde jsou složité integrace a komplexní logika (běžně finance, telco), pak může být ta správnější volba Playwright.

Určitě ale doporučuji používat nástroj podle stacku na tvém projektu. Pokud máš všechny aplikace napsané v Javě, Cypress asi nebude ta pravá volba.

Chceš se naučit automatizovat? Podívej se na naše kurzy: Playwright a nebo Cypress. S programováním ti pomůžeme v kurzu Javascript pro testery.

Závěr

Při výběru mezi Playwright a Cypress je důležité brát v úvahu nejen metriky popularity, ale také specifické potřeby projektu, technické schopnosti týmu a preferované funkce. Zatímco Cypress může být vhodnější pro týmy, které hledají osvědčený nástroj s širokou uživatelskou základnou, Playwright může nabídnout více funkcí a širší podporu pro různé prohlížeče. Doporučuji testovat oba nástroje v reálných podmínkách tvého projektu, než se rozhodnete pro jeden z nich.

Máš zkušenost s Playwright nebo Cypress? Poděl se v komentářích!

4 thoughts on “Playwright vs. Cypress: Souboj dvou automatizačních nástrojů

  1. Předpojatý a zbytečný článek. A autor to dobře ví, když sám připustí, že je to jako porovnávat jablka s hruškami, ehm, androidy. Zajímavější by bylo realné použití nástroje v konkrétním funkčním testu. Vzít konkrétní 1 testovací případ a zautomatizovat ho podle best practices pro danný nástroj / jazyk. Jak dlouho to trvalo? Co je čitelnější? Jak pracuje s test daty? Jak dlouho běží? Jak pokročilou znalost nástroje musí na takový TC tester mít?

    1. Díky moc za konstruktivní komentář. Cílem tohoto článku bylo poskytnout srovnání mezi dvěma populárními automatizačními nástroji, a nikoliv detailní průvodce praktickým testováním jednoho konkrétního případu. Máte pravdu, že konkrétní testovací scénář by poskytl hlubší pohled do reálného použití obou nástrojů. Vaše návrhy jsou ale inspirující a v budoucnosti se na toto můžeme zaměřit v jiném článku či video formátu (který je pro reálné použití vhodnější).

      Ohledně vašeho komentáře o “předpojatosti”: můj záměr byl poskytnout nezávislé a objektivní srovnání těchto nástrojů. Samozřejmě v některých částech bylo nutné přistoupit k určité míře subjektivnosti. Já sám mám rád jak Cypress, tak Playwright a používám oba v různých případech. Na konci článku i zmiňuji, že rozhodnutí na použití nástroje závisí na více kritériích a typu aplikace. Pokud máte konkrétní připomínky k předpojatosti a myslíte, že je nevhodné srovnávat, budu rád, když mi je sdělíte.
      Ještě jednou díky za vaše připomínky a těším se na další konstruktivní diskuzi!

Leave a Reply