WebdriverIO – un framework popular pentru testare automata
Fiind o componenta extrem de importanta in procesul de dezvoltare a produselor software (Software Development Life Cycle / SDLC), testarea software trebuie realizata in mod necesar si obligatoriu, pentru a preintampina si corecta bug-urile ce se strecoara in productie. Din perspectiva modalitatii de lucru prin care se verifica si valideaza componentele unei aplicatii, testarea software se poate imparti in 2: testare manuala si automata.
Testarea automata e necesara deoarece ne ajuta sa verificam mai rapid mai multe cazuri de testare pentru aceeasi functionalitate, cu ajutorul codului, beneficiile ei fiind semnificative. Pentru ambele tipuri avem nevoie de instrumente de lucru specifice care sa ne ajute in acest proces, unele mai generale, altele mai specifice si mai tehnice.
Ce este WebdriverIO?
Pentru a putea automatiza testele pe care le scriem si pe care vrem sa le executam, este nevoie de folosirea unor instrumente speciale numite framework-uri. Acestea reprezinta in general un produs software care defineste un anumit cadru prin care un utilizator poate sa execute anumite actiuni, sa scrie el anumite linii de cod care sunt ulterior preluate si incorporate de catre acel framework si astfel sunt executate respectivele comenzi. Mai simplu spus, un framework este un instrument care usureaza munca de automatizare si executie a unor comenzi pe care utilizatorii sau testerii le doresc, de aceea este extrem de necesar in testarea automata.
Unul dintre acestea este si WebdriverIO (WDIO), unul dintre cele mai cunoscute si populare astfel de instrumente de automatizare din ultimii ani. Acesta reprezinta un proiect independent, de tip Open Source lansat pentru prima data in 2013, creat de catre inginerul software Christian Bromann, care a implementat intr-o maniera proprie un standard deja existent si folosit si de catre cei de la Selenium, JSON Wire Protocol. A nu se confunda WebdriverIO despre care vorbim acum cu Selenium Webdriver. Desi au nume extrem de asemanatoare si pornesc de la implementarea unor baze comune, ele sunt 2 framework-uri de automatizare diferite.
![](https://www.blogdeit.ro/wp-content/uploads/2023/01/WebdriverIO.png)
Astfel, WebdriverIO este folosit foarte mult in testarea web si pentru aplicatiile native de mobile. Avand deja aproape un deceniu de existenta, a devenit destul de apreciat in randul celor care l-au folosit si il folosesc in continuare, beneficiind de imbunatatiri constante si de mai multe versiuni lansate care l-au finisat pentru munca de automatizare. In momentul scrierii acestui articol, WebdriverIO este la versiunea cu numarul 8.
Instalare, setup si utilizare
WebdriverIO este construit sa functioneze si sa ruleze testele automate cu ajutorul si in cadrul unui alt soft, Node.js. Acesta ajuta la setarea pe calculatorul nostru a unui mediu dedicat in care sa putem rula cod atat pentru partea de interfata web (frontend) dar si pentru partea din spatele interfetei (backend), ambele cu limbajul JavaScript, ca sa putem aveam site-uri si aplicatii cat mai complete.
Astfel, prima data trebuie sa ne instalam pe calculatorul nostru Node.js, care va descarca mai multe pachete de programe necesare. Din acest punct, controlul viitoarelor aplicatii si framework-uri se poate face din Terminalul de Comanda (Command Prompt), unde scriem anumite comenzi iar interfata NPM le executa.
![](https://www.blogdeit.ro/wp-content/uploads/2023/01/npm-wdio.jpg)
Al doilea pas este sa ne stabilim un folder al proiectului nostru de automatizare, recomandabil pe o partitie diferita de C. In acest folder vom instala instrumentul de testare automata WebdriverIO. Dupa cum am mentionat anterior, acest lucru se poate face extrem de simplu deschizand Terminalul de Comanda, navigand pe partitia si pe folderul cu proiectul nostru si ruland comanda de instalare corespunzatoare. De fiecare data cand vrem sa instalam framework-uri si librarii de cod necesare pentru proiectele noastre (indiferent ca vorbim de programare sau testare), le vom lua de pe site-ul Node Package Manager, ruland comanda de instalare in terminalul nostru. Aceste comenzi se pot gasi si pe site-ul oficial al WDIO, la sectiunea Get Started.
![](https://www.blogdeit.ro/wp-content/uploads/2023/01/NPM-install-wdio.jpg)
In urmatorul pas, se va incepe descarcarea fisierelor necesare, iar la final in terminalul nostru va trebui sa definitivam configurarea lui WebdriverIO prin completarea unui fel de formular, in care bifam diferite optiuni. Acestea pot fi mai simple sau mai complexe, in functie de ce avem nevoie sa testam. Aici stabilim URL-ul de baza pe care il testam, browser-ul in care il testam, drivere si alte specificatii aditionale. Daca am bifat niste optiuni pe care nu le doream, solutia este sa stergem fisierul “wdio.config.js” si sa mai rulam o data comanda de configurare.
Din acest punct avem tot ce trebuie ca sa automatizam testele, iar singurul lucru ce mai trebuie facut este sa scriem testele noastre intr-un fisier cu extensia “.js” (JavaScript). Astfel, instalarea si configurarea WebdriverIO este una relativ simpla, destul de accesibila chiar si pentru incepatorii in testare sau IT, care cunosc bazele limbajului JavaScript.
Avantaje si dezavantaje ale lui WebdriverIO
Un prim avantaj destul de important care se poate observa la WebdriverIO este popularitatea sa care a crescut constant in ultimii ani. Pe profilul oficial de GitHub, acest framework are niste cote de rating destul de bune, 7.9k la Stars si 2.2k la Forks. Popularitatea aceasta se traduce si in update-uri constante pe care le primeste din partea comunitatii, fiind un proiect Open Source, lucru care favorizeaza in timp acumularea de noi recenzii si imbunatatiri.
Un al doilea avantaj este oarecum legat tot de primul, si anume acela ca WebdriverIO este folosit foarte mult in productie de numeroase firme si multinationale din sfera IT. Printre cele mai cunoscute nume care se regasesc pe aceasta lista ar fi Google, Netflix, Microsoft sau Salesforce. Acest lucru se datoreaza si faptului ca este un instrument usor de folosit, destul de versatil si configurabil intr-o multitudine de situatii de testare web si mobile. Inclusiv pentru cei care doresc sa invete testare automata pornind de la 0, WebdriverIO este un inceput bun care ajuta si iti arata cum functioneaza aceasta componenta a testarii, in general.
De asemenea, faptul ca este un framework de automatizare modern si usor de configurat l-a propulsat in numeroase topuri ale celor mai folosite astfel de instrumente de automatizare a testarii, chiar daca ne referim la topuri generale sau legate specific de instrumente care se pot folosi cu JavaScript.
Desigur, ca oricare alta aplicatie software, WebdriverIO are si dezavantajele sale. Principalul dezavantaj este acela ca acest framework este construit si functioneaza doar cu limbajul de programare JavaScript si eventual cu extensia acestuia de functionalitati, TypeScript. Un al dezavantaj este partea de debugging (de rezolvare a erorilor din cod), lucru care aparent poate dura ceva mai mult, prin WDIO task runner. Mai mult, acesta nu este proiectat pentru o analiza aprofundata a browserului, cum ar fi urmarirea evenimentelor de retea. Daca vrei sa testezi automat alte aplicatii, precum cele de tip desktop, atunci WebriverIO nu e potrivit pentru aceasta sarcina.
Concluzii
In incheiere, WebdriverIO este un framework popular de testare automata, destul de folosit atat la nivel inalt de marile corporatii dar si in proiectele mai mici, destul de versatil si folositor pentru testarea website-urilor si a aplicatiilor mobile. Daca vrei sa incepi sa inveti testare automata, framework-ul WebdriverIO folosit cu limbajul JavaScript in cadrul Node.js poate fi o optiune buna si abordabila, care te va invata despre multe aplicatii si situatii pe care le poti intalni in acest domeniu. Sper ca acest articol sa te ajute pentru a te motiva si incepe sa inveti testare automata.
Surse consultate si suplimentare
Mai jos gasesti o lista cu principalele resurse care au stat la baza acestui articol, si care te pot ajuta sa deprinzi mai multe despre WDIO si automatizare:
Despre testarea automata si alte subiecte
WebdriverIO pe GitHub
Detalii despre ciclul de dezvoltare al produselor software
Node Package Manager (NPM), unde gasesti o multitudine de librarii si framework-uri
Diferente intre WebdriverIO si Selenium Webdriver: perspectiva istorica si comparativa.
Topuri in care e inclus WebdriverIO (cu avantaje si dezavantaje) gasesti 👉1️⃣ aici, 👉2️⃣ aici, si 👉3️⃣ aici.