Robot: un framework util pentru testare automata si RPA
In lumea testarii automate exista foarte multe solutii de automatizare traduse in tool-uri, librarii si framework-uri care pot fi implementate in proiectele de productie ale companiilor de IT. Fiecare are particularitatile sale, avantaje specifice si puncte minus, in functie de ce ne intereseaza sa implementam si sa testam in consecinta.
In trecut am mai discutat despre Playwright, Cypress sau BrowserStack aici pe blog. In continuare, unul dintre aceste framework-uri de automatizare extrem de utile si interesante despre care vom discuta este Robot framework.
Ce reprezinta Robot?
Dupa cum reflecta si numele sau oficial, Robot este unul dintre framework-urile de automatizare a scenariilor unei aplicatii existent in mediul online. Este un instrument care a fost de la inceput open-source si a ramas sub aceasta forma pana in prezent.
Istoria lui Robot framework incepe in anul 2005, cand apare ca un concept in lucrarea lui Pekka Klärck, prima versiune (1.0) fiind lansata in acelasi an de catre Nokia. Ulterior, versiunea 2.0 este lansata ca un proiect open-source in anul 2008, moment care marcheaza lansarea de drept a lui Robot drept un tool de automation pentru marea masa a pasionatilor si inginerilor QA.
Dezvoltarea sa a continuat intr-un ritm constant cu ajutorul comunitatii open-source create si gestionate de catre Robot Framework Foundation, ajungandu-se la versiunea 7.0 in 2024. Se poate observa deci ca Robot este un instrument aflat in continua dezvoltare si imbunatatire. Astazi, Robot este folosit de zeci de companii mai mari sau mai mici din industria IT, de la Nokia, Capgemini, CGI, Alten sau Schenker.
Robot face parte din aceeasi categorie cu alte framework-uri de automatizare precum Selenium sau Cypress. Desigur, exista mai multe diferente intre acestea, insa Robot permite integrarea cu anumite librarii astfel incat in cadrul unui proiect de testare automata construit cu Robot, sa poata fi incorporate de exemplu si metodele oferite de Selenium. Mai mult decat atat, Robot framework poate fi folosit si pentru testare mobile sau RPA, pe cand Selenium se preteaza preponderent doar pentru testare automata pe Web.
La ce ajuta Robot? Integrari si functionalitati
Framework-ul Robot este folosit atat pentru testarea automata pentru mediul Web, pentru testarea automata a aplicatiilor mobile si pentru bazele de date. De asemenea, Robot este folosit si pentru Robotic Process Automation, acel sub-domeniu care incorporeaza tehnologii prin care sunt construite programele software ce imita un robot, ii automatizeaza functiile si il calibreaza pentru a executa diferite sarcini uzuale pentru utilizatori.
Acest framework este construit cu ajutorul componentei de keyword-driven testing. Mai precis, in cadrul unui proiect in care avem instalat Robot, putem folosi anumite cuvinte-cheie deja construite (built-in) sau sa ne construim noi astfel de termeni care sa ne ajute sa controlam executia pasilor din testele automate, si ulterior sa gestionam cazurile de testare din proiect.
De asemenea, Robot permite si folosirea paradigmei BDD (Behaviour-Driven Development) pentru a construi pasi de testare in limbaj natural, care sa poata fi intelesi si de cei care sunt incepatori pe acel proiect, dar si de persoanele non-tehnice (de exemplu un manager de proiect sau un reprezentant de vanzari). In corelatie cu keywords si BDD, Robot permite si setarea de variabile locale sau globale, care sa poata fi (re)folosite in cadrul unui test sau a mai multora, prin apelarea lor directa.
Probabil cel mai important atu din punct de vedere tehnic pentru framework-ul Robot este ca ofera posibilitatea de a instala anumite librarii in proiectul principal si sa extinda functionalitatile pe care ne putem baza pentru a automatiza diferite scenarii.
Putem folosi astfel Appium Library pentru anumite functii extra de testare automata in zona de mobile, RPA Library pentru partea de procese robotice si chiar AI, sau Selenium Library pentru a integra metodele cunoscutului tool de web testing in proiectul nostru. Toate aceste librarii pot fi instalate din terminal executand niste comenzi simple pe care le gasim usor pe site-ul de documentatie al Robot framework, la sectiunea Libraries.
Setup si instalare
Robot a fost proiectat si construit in limbajul Python, astfel ca daca vrem sa pornim un proiect nou nout cu acesta, primul pas din procedura de setup este sa instalam limbajul Python pe masina noastra de lucru. Acesta este un limbaj destul de raspandit si folosit pentru testare automata, fiind si o optiune buna daca vrem sa invatam bazele acestui domeniu cu Selenium de exemplu.
Dupa ce am instalat limbajul Python, urmatorul pas este sa instalam propriu-zis framework-ul Robot, cu ajutorul urmatoarei comenzi pe care o rulam de asemenea intr-un terminal:
pip install robotframework
robot –version
Din acest moment, avem instalat in proiectul nostru framework-ul Robot. Daca de exemplu dorim sa adauga o librarie de care pomeneam mai sus, pentru a extinde gama de functionalitati, atunci nu trebuie decat sa consultam documentatia, sa alegem libraria care ne intereseaza, cum ar fi Selenium, sa copiem comanda de instalare si sa o rulam intr-un terminal. Comanda pentru a instala Selenium Library este:
pip install --upgrade robotframework-seleniumlibrary
Un proiect de automation cu Robot contine in esenta cam aceleasi tipuri de fisiere ca un proiect cu Selenium, asa cum sunt prezentate in documentatia sa proprie: avem un fisier pentru dependinte, unul pentru teste sub forma de BDD, unul pentru clase si metode, un folder pentru resurse precum variabilele globale pe care vrem sa le refolosim si asa mai departe.
Un exemplu de test scris in Robot care verifica functia de login cu o parola incorecta arata cam asa:
Se poate observa ca acest test, destul de simplu si fara a fi scris intr-un limbaj natural, are un titlu si un tag specifice pentru Login, deschide o fereastra de navigare, da click pe link-ul de login, introduce username-ul si parola (incorecta), da click pe butonul de login, si la final aserteaza ca logarea a esuat, in mod veridic.
Avantaje si dezavantaje ale framework-ului Robot
Robot framework este un tool de testare automata extrem de interesant, dar care cu siguranta nu este neaparat unic in marea gama a acestor instrumente, avand desigur avantaje si dezavantaje.
Primul avantaj care sare in ochi pentru orice pasionat care intra prima data in contact cu Robot este acela al simplitatii sale pe partea de setup. Se poate instala foarte usor si nu are nevoie de foarte multi pasi aditionali pentru a pune bazele unui proiect, doar de a instala Python si a rula o comanda in terminal, eventual daca mai vrem sa adaugam apoi librarii extra.
Dat fiind faptul ca Robot exista ca proiect open-source, a beneficiat si inca are parte de o comunitate masiva care ii ofera sprijin sa se dezvolta, atingand mai multe iteratii. Faptul ca este folosit de foarte multe companii din IT ii ofera si o imagine foarte buna, atragand in continuare interes si fonduri.
Versatilitatea sa este o alta calitate evidenta. Faptul ca poate fi folosit pentru mai multe tipuri de testare, de la cea web, mobile, API sau Robotic Process Automation, si prezinta diverse integrari cu alte tool-uri de testare ofertie de librariile sale care se pot instala de asemenea foarte usor prin linie de comanda.
Documentatia este si ea prezenta si bine structurata, fiind un sprijin pentru cei aflati la inceput cu Robot. Mai mult, Robot ofera foarte multe tutoriale si cursuri pe canalul lor de YouTube despre cum poate fi utilizat acesta in dezvoltarea testelor automate.
Printre dezavantaje se enumera faptul ca totusi Robot nu este la fel de raspandit precum instrumentele consacrate de testare automata precum Cypress, Selenium, si nici nu a avut ascensiunea pe care o prezinta in ultima vreme Playwright.
Desi ofera facilitatea de a testa mai multe lucruri, nu doar Web, totusi suportul in anumite zone este relativ limitat. De exemplu, chiar daca prezinta integrarea cu Appium Library, totusi sunt limitari pe partea de actiuni la testarea de mobile.
De asemenea, Robot poate fi o optiune buna pentru un incepator sa exerseze lucrurile basic, dar pentru cele ceva mai avansate, necesita o aprofundare de cunostinte, fiind necesara cunoasterea lucrului cu variabile, functii, clase, deci cunostinte de programare mai serioase.
Concluzii
In incheiere, Robot este un framework de testare automata foarte interesant, versatil si cu multe feature-uri utile pe partea de automated testing. Este destul de raspandit, chiar daca nu intr-un potential top, si beneficiaza de dezvoltare constanta, astfel incat daca un incepator vrea sa invete sau daca o echipa de QA vrea sa construiasca un nou proiect, atunci cu siguranta Robot poate fi o optiune valida.
Re(surse) despre Robot framework
Website-ul oficial al Robot framework
Repo-ul de GitHub al proiectului Robot
Despre istoria acestui framework
Documentatia generala si cea legata de API-uri pentru Robot framework
Grupurile comunitatii Robot si codul de etica al acesteia
Articole suplimentare despre Robot sunt pe BrowserStack si TestGuild