Playwright – un „dramaturg” software pentru teste automate
In cadrul procesului de testare, componenta de testare automata se realizeaza preponderent cu ajutorul unor aplicatii speciale numite framework-uri de automatizare. In trecut, am vorbit aici pe blog despre doua astfel de framework-uri, WebDriverIO si Cypress.
In continuare voi vorbi despre un alt tool asemanator pentru scrierea de scripturi ce ne ajuta in testarea automata, si anume Playwright. Pe canalul de Youtube acesta a fost prezentat intr-o maniera inedita, de catre AI.
Ce este Playwright?
Dupa cum aminteam anterior, Playwright (in traducere „dramaturg”) este un framework, adica o aplicatie software in cadrul careia putem scrie niste cod si care are rolul de a ne rula si livra anumite rezultate. In acest caz, in cadrul lui scriem anumite scripturi de cod care au rolul de a interactiona cu produsul pe care vrem sa il testam si sa ne livreze anumite date, pentru a depista eventualele bug-uri.
Playwright este un framework de automatizare destul de tanar, fiind creat si lansat de catre Microsoft. Prima lui iteratie a fost lansata publicului in ianuarie 2020, cu putin timp inainte de pandemie, iar in ultimii trei ani a continuat sa primeasca constant imbunatatiri si sa devina treptat cunoscut. Astazi, acest tool este open-source (poate primi imbunatatiri de la oricine), si este gratuit, putand fi descarcat gratuit de pe site-ul Node Package Manager.
La fel ca in cazul celorlalte framework-uri din aceasta sfera, precum WebDriverIO, Cypress ori Selenium, Playwright ne poate ajuta considerabil cand vrem sa scriem niste suite de teste automate pe care sa le rulam intr-un mediu sigur, prin care sa verificam anumite aspecte functionale ale unui produs software, sau sa efectuam o testare end-to-end ce imita fluxul de interactiune al unui utilizator normal.
Instalare, setup si utilizare
Pregatirea si utilizarea instrumentului Playwright este aproape identica ca in cazul precedentelor framework-uri de automatizare prezentate, WDIO si Cypress, lucru datorat faptului ca ambele pot fi utilizate cu ajutorul Node.js, mediul de rulare backend pentru limbajul JavaScript. Astfel, primul pas in vederea folosirii lui este sa instalam Node.js de pe site-ul oficial prin descarcarea ultimei versiuni stabile, asta daca nu o avem deja instalata pe calculatorul nostru.
Al doilea pas dupa instalarea Node.js si eventual restartarea dispozitivului nostru (ca sa ne asiguram ca totul s-a instalat pana la capat), este sa instalam intr-un folder dedicat Playwright, prin folosirea comenzii de instalare. Aceasta, ca in cazul oricarei librarii ce foloseste Node.js, se gaseste pe site-ul oficial Node Package Manager (NPM), pe pagina dedicata a Playwright.
Dupa ce luam linia de comanda pentru instalarea Playwright, deschidem pe calculatorul nostru un terminal de comanda (de la campul de cautare cu „cmd”), navigam pe partitia si in folderul nostru dedicat pentru proiecte de automatizare si scriem comanda in terminal, ca in exemplul de mai jos.
Dupa ce am facut acesti pasi, asteptam sa se instaleze framework-ul nostru, urmand ca dupa instalarea completa sa il folosim la scrierea de teste automate. Daca dupa instalare nu se deschide corect, e recomandabil sa dai un restart dispozitivului sau sa il stergi si sa reiei procesul.
Scrierea de teste este destul de asemanatoare din punct de vedere al sintaxei ca in cazul WebDriverIO. Un exemplu de test automat scris in Playwright care acceseaza titlul unei pagini web, in acest caz blogdeit.ro, este urmatorul:
Pe internet si chiar pe Youtube exista mai multe tutoriale care explica in detaliu configurarea si folosirea practica a tool-ului Playwright, si sa il folosesti astfel la proiecte personale de testare automata ori la locul de munca.
Avantaje si dezavantaje ale lui Playwright
Exact ca in cazul oricarei alte aplicatii care este mai complexa decat un simplu calculator sau caiet de notite, exista oameni care incep sa prefere Playwright pentru ca prezinta o serie de mai multe avantaje, sau inca nu il adopta in munca lor pentru ca are si anumite dezavantaje raportat la alte instrumente de automatizare asemanatoare.
Printre avantajele principale ale acestui tool se regasesc configurarea si instalarea destul de usoara, fara conditii prea speciale din punct de vedere tehnic, si faptul ca permite testarea incrucisata pe mai multe tipuri de browsere, care au la baza Chromium sau alt pachet software de navigare (Google Chrome, Microsoft Edge, Mozilla Firefox, Safari, Opera etc.). Testarea se poate face pe rand pe cate un browser sau simultan pe mai multe, ceea ce reduce durata.
Un alt avantaj al lui Playwright este acela ca poate fi folosit pe oricare din cele trei sisteme de operare principale, Windows, Linux si MacOS, ceea ce largeste considerabil aria lui de utilizare in industria software. Acest tool poate fi folosit de asemenea cu o multitudine de limbaje de programare, nu doar cu JavaScript sau Typescript. Astfel, Playwright poate fi utilizat si cu Java, Python, .NET sau C#.
Din punct de vedere al tipurilor de testare pentru care este folosit, Playwright exceleaza la testarea functionala, testarea de tip end-to-end (care imita interactiunea completa a unui user), sau testarea de API-uri. Cu ajutorul unor plug-in-uri aditionale, poate fi utilizat si pentru testarea de accesibilitate. De asemenea, prezinta mai multe instrumente utile in cadrul sau care ajuta la testare si la depistarea defectelor, precum Playwright Inspector, Browser Developer Tools, Visual Studio Code Debugger sau Trace Viewers Console Logs.
Din perspectiva dezavantajelor, asa cum am mentionat si la inceputul articolului, Playwright este un framework destul de nou, avand putin peste trei ani de cand a fost lansata prima lui iteratie, si inca nu e la fel de cunoscut precum alte tool-uri care au deja un grad mai mare de incredere si stabilitate.
Pana cand Playwright va ajunge la o anumita maturitate, acest lucru il dezavantajeaza comparativ cu alte framework-uri de testare automata. Fiind un tool open-source, in mod clar beneficiaza de o comunitate care ii ofera update-uri constante, iar documentatia lui bine structurata poate fi un argument bun in folosirea lui, insa baza celor care il folosesc activ este inca relativ mica, dar in crestere.
Un alt dezavantaj este acela ca Playwright nu poate testa chiar orice tip de aplicatie. Mai precis, poate fi folosit pentru aplicatii de tip web sau API-uri, dar nu poate fi utilizat de exemplu pe aplicatii mobile native. Un alt dezavantaj este ca Playwright permite efectuarea de screenshot-uri sau inregistrari video pe cate un singur test, in cadrul functiei test()
, si nu in mod coroborat pe cate o suita cu mai multe teste, ca sa existe registre unitare.
Concluzii
In incheiere, Playwright este un framework destul de util si de mare ajutor in scrierea de scripturi pentru efectuarea testarii automate. Fiind un instrument destul de nou, face in mod cert parte din noua generatie de astfel de instrumente de automatizare, in cadrul sau avand integrate mai multe functii ce se pliaza suficient de bine pe noile caracteristici ale website-urilor moderne si nu numai.
Destul de usor de instalat, versatil in folosire pe diferite navigatoare web sau sisteme de operare, dar cu o baza de folosire relativ mica si fara o maturitate consistenta dovedita de folosirea lui efectiva, Playwright poate deveni unul dintre cele mai utile instrumente care sa ajute testerii sa isi scrie scripturile de automatizare, si sa le execute in proiectele lor de testare software, in mod rapid, gratuit si eficient, fiind si o varianta buna de a deprinde notiunile introductive de testare automata.
Surse consultate si suplimentare despre Playwright
- Site-ul oficial Playwright, canalul lor de Youtube, contul de GitHub si canalul de Discord.
- Documentatia oficiala a lui Playwright.
- Detaliile despre Playwright de pe Node Package Manager.
- Articole cu avantaje si dezavantaje despre Playwright sunt 👉 aici, 👉 aici si 👉 aici.
- O comparatie interesanta intre Playwright si Cypress.
- Articol despre evolutia Playwright si detalii despre alte tool-uri de automatizare.