Wat is Playwright?

Waar komt Playwright eigenlijk vandaan of is het zo maar uit de lucht komen vallen?  In dit blog neem ik je mee naar het ontstaan van Playwright en waarom het de potentie heeft om één van de meest gebruikte testautomatisering tools te worden.

Playwright is “the new kid on the block” voor wat betreft testautomatisering en heeft veel potentie. Maar waar komt Playwright nu eigenlijk vandaan of is het zo maar uit de lucht komen vallen? 

In dit blog neem ik je mee naar het ontstaan van Playwright, waar het allemaal is begonnen en waarom deze tool, naar mijn mening, de potentie heeft om één van de meest gebruikte testautomatisering tools te worden.

DE GESCHIEDENIS VAN PLAYWRIGHT

Playwright is in 2017 opgericht. Dat dit 2017 is, is niet toevallig. Het is namelijk zo dat in 2017 een veel gebruikte headless browser PhantomJS deprecated werd. De reden hiervoor was dat Google had aangekondigd headless Chrome uit te gaan brengen en deze kwam beschikbaar in Chrome 59. Later in 2017 kwam ook Firefox met een headless variant. Deze nieuwe headless browsers maakten het mogelijk om efficiëntere testen en scripts te schrijven en maakten zo de geboorte van Playwright mogelijk.

Playwright heeft zijn roots in Puppeteer. Een groot deel van het team dat aan Puppeteer werkte is in feite overgestapt van Google naar Microsoft en vanaf die dag is het Playwright team ontstaan. In dit team zitten onder andere een aantal leden van het Google devtools team. Kenners van Puppeteer zullen waarschijnlijk veel herkennen in Playwright.

Ondanks dat Puppeteer en Playwright veel overeenkomsten hebben, hebben ze ook verschillen. Dit is vooral te zien in de cross-browser compatibility. Playwright kan Chromium (Chrome en Edge), Firefox en Webkit (Safari) aansturen, zowel headed als headless. Ook hebben ze een aantal verbeteringen bij Playwright kunnen doorvoeren die in Puppeteer niet mogelijk waren, zoals de default ingebouwde waits. 

Sinds januari 2020 is Playwright officieel beschikbaar en niet langer in de bèta fase. Het is open source en kan door iedereen gratis gedownload en gebruikt worden. Er wordt voortdurend gewerkt aan nieuwe features en verbeteringen. Sinds de officiële release zijn er (bijna) maandelijks nieuwe versies beschikbaar gekomen. 

DE VOOR- EN NADELEN VAN PLAYWRIGHT

Waarom ik zo enthousiast over Playwright ben? Hieronder staan, naar mijn idee, de grootste voor- en nadelen van Playwright. De onderstaande lijst is niet uitputtend, maar ik heb de belangrijkste argumenten op een rij gezet. 

De voordelen:

  1. De ondersteuning van meerdere talen:  JavaScript
    • TypeScript 
    • Java 
    • C# 
    • Python
  2. Cross-browser compatibiliteit (echte browsers, niet embedded):  
    • Chromium engine (Chrome en Edge) 
    • Firefox engine 
    • Webkit engine (Safari) 
  3. Open source en geheel gratis te downloaden en te gebruiken 
  4. CI/CD integratie van o.a.: 
    • Jenkins 
    • Docker 
    • Gitlab CI 
    • Azure pipelines 
    • Github actions 
    • Bitbucket pipelines 
  5. Veel ondersteuning  
    • Maandelijkse releases 
    • Triage tijd van <48 uur 
  6. Ervaren team door Google devtools en Puppeteer kennis
  7. Ondersteund door Microsoft, dus er is budget om te groeien
  8. Snel (sneller dan bv. Cypress en Selenium)
  9. Eenvoudig testen schrijven met Codegen 
  10. Je hebt volledige controle over de browser en de API’s
  11. Multi-tab, multi-user en iFrames ondersteuning
  12. Shadowdom piercing is mogelijk
  13. Cucumber ondersteuning
  14. Testen kunnen parallel gedraaid worden 
  15. Debugging opties zoals: 
    • Playwright inspector 
    • Browser developer tools 
    • VSCode Debugger 
    • Trace viewer console logs 
  16. Ingebouwde en uitgebreide (JSON, JUnit en HTML) rapportage inclusief: 
    • Screenshots 
    • Video’s 
    • Tracefile 
    • Logging 
  17. Visuele regressie testen is mogelijk
  18. Niet afhankelijk van externe dependencies 
  19. Er wordt geëxperimenteerd met native testen op mobiele devices (voor nu alleen nog Android)

Ok, ik hoor je denken: “Het kan toch niet allemaal rozengeur en maneschijn zijn?”. Dat klopt, er zijn ook wat tekortkomingen. Het zijn er niet veel, maar misschien zijn ze wel belangrijk voor jouw keuze.

De nadelen:

  1. Geen Internet Explorer 11 of legacy Edge ondersteuning 
  2. Nog niet te gebruiken met Ruby 
  3. Alleen desktop browsers worden ondersteund i.p.v. echte devices of emulatoren
  4. Alleen voor webapplicaties en API’s te gebruiken

CONCLUSIE

In de paar jaar dat Playwright bestaat, heeft het laten zien dat het een serieuze tool is om rekening mee te houden en dat ze van plan zijn te blijven. Ze bieden een oplossing voor webapplicaties en API testen die snel en eenvoudig toe te passen is. 

In onze trainingen leer ik je een goed gestructureerde basis en een goed platform neer te zetten om optimaal met Playwright te kunnen werken met Playwright.