Robot Framework: obľúbený nástroj na automatizované testovanie

V dnešnom modernom softvérovom svete je automatizácia testov neodmysliteľnou súčasťou vývoja softvéru. Ako sa softvér stáva čoraz zložitejším a rozsiahlejším, ručné testovanie sa stáva časovo náročným a náchylným na chyby. Tu prichádza na rad Robot Framework, nástroj navrhnutý na automatizáciu testov (test automation), ktorý sa stal obľúbeným vo vývojárskych a testovacích komunitách.

Robot Framework je všestranným a výkonným nástrojom. Vďaka svojej intuitívnej syntaxi a rozsiahlym možnostiam si získal popularitu po celom svete. V tomto článku sa budeme venovať jeho kľúčovým vlastnostiam a porovnaniu s inými populárnymi automatizačnými frameworkami.

Robot Framework je open-source framework, ktorý umožňuje automatizovať testovacie scenáre rýchlo a jednoducho. Jeho jedinečná vlastnosť spočíva v tom, že poskytuje vysoko čitateľnú a intuitívnu syntax, vďaka ktorej je písanie testovacích prípadov veľmi jednoduché aj pre tých, ktorí nemajú veľa skúseností s programovaním. Robot Framework je implementovaný v jazyku Python, čo umožňuje využívať jeho výhody a rozšírenie pomocou existujúcich knižníc v ekosystéme Pythonu.

Robot Framework a Java: Okrem podpory pre jazyk Python, Robot Framework je tiež kompatibilný s programovacím jazykom Java. To umožňuje vývojárom a testerom, ktorí preferujú Javu, využívať všetky výhody Robot Frameworku v ich projektoch. Integrácia Robot Frameworku s Javou otvára možnosti použitia širokej škály knižníc a nástrojov z ekosystému Javy.

Taktiež podporuje koncept Robotic Process Automation (RPA), čo umožňuje automatizovať opakujúce sa a manuálne úlohy v procesoch, ako napríklad zber a spracovanie údajov. RPA je populárny trend v oblasti automatizácie a Robot Framework poskytuje prostredie a nástroje potrebné pre úspešné vykonávanie RPA úloh.

Taktiež je veľmi flexibilný a umožňuje integráciu s ďalšími nástrojmi a frameworkmi. Napríklad, je možné ho integrovať s Visual Studio Code, ktoré je populárnym vývojovým prostredím poskytujúcim výhody ako syntax highlighting, autokompletné funkcie a ďalšie nástroje, ktoré uľahčujú písanie a spúšťanie testovacích prípadov. Okrem toho, Robot Framework je kompatibilný s jazykom Java, čo otvára možnosti využitia rozsiahleho ekosystému knižníc a nástrojov v jazyku Java.

Robot Framework – mobile testing

Robot Framework ponúka aj podporu pre testovanie mobilných aplikácií. S využitím príslušných knižníc a nástrojov je možné písať testovacie prípady, ktoré interagujú s mobilnými zariadeniami a overujú ich správne fungovanie.

S týmito knižnicami môžeme jednoducho ovládať rôzne mobilné platformy, ako napríklad Android a iOS, a vykonávať rôzne akcie, ako je inštalácia aplikácií, interakcia s používateľským rozhraním, testovanie funkcií a správu súborov.

Okrem natívnych knižníc môžeme v Robot Frameworku využívať aj ďalšie populárne knižnice a nástroje pre mobilné testovanie, ako je Appium, Selendroid alebo Calabash, ktoré poskytujú rozšírenú funkcionalitu a podporu.

Robot Framework tiež umožňuje paralelné a distribuované testovanie mobilných aplikácií. Môžeme jednoducho spúšťať testy na viacerých zariadeniach súčasne, čo výrazne urýchľuje celkový proces testovania.

Robot Framework Syntax

Syntax Robot Frameworku je navrhnutá tak, aby bola jednoduchá, čitateľná a intuitívna. Používa sa tabuľkový formát, v ktorom sú oddelené stĺpce štyrmi medzerami alebo tabulátormi. Syntax sa skladá z testovacích príkazov, kľúčových slov, premenných a komentárov. Správne porozumenie a používanie syntaxe je kľúčom k úspešnému písaniu a vykonávaniu testov s Robot Frameworkom.

Robot Framework je open-source tool pre automatizáciu softvérových testov a robotických procesov (RPA), využívajúci jazyk Python.
Testovacie skripty v Robot Framework. ZDROJ: packetpushers.net

V Robot Framework sa testovacie skripty a príslušné testovacie dáta organizujú do štruktúry súborov. Táto štruktúra zaisťuje prehľadnosť a organizáciu testovacieho projektu.

V tejto štruktúre súboru máme štyri hlavné časti.

  • V časti „Settings“ (Nastavenia) je uvedená knižnica, ktorú chceme použiť (môže to byť existujúca knižnica alebo tvoja vlastná knižnica prostredníctvom skriptu .py).  Akcie „Suite Setup“ a „Suite Teardown“ sú tým, čo sa uskutoční pri spustení tohto pracovného postupu.  Akcia „Suite Setup“ volá kľúčové slovo „Open Connection And Log In“, ktoré definujeme nižšie, zatiaľ čo akcia „Close All Connections“ je známe kľúčové slovo, ktoré je v tomto prípade samozrejmé.
  • V časti „Variables“ (Premenné) sú definované tri premenné, ktoré použijeme na pripojenie k sieťovému zariadeniu.
  • V časti „Keywords“ (Kľúčové slová) sa definuje už spomínané kľúčové slovo „Open Connection And Log In“ (Otvoriť spojenie a prihlásiť sa), ktoré využíva premenné, ktoré sme definovali nad ním, a ktoré sa zavolá v časti „Settings“ (Nastavenia) vždy, keď sa spustí náš pracovný postup.
  • Nakoniec máme našu skutočnú sekciu „Test Cases“ (Testovacie prípady), v ktorej definujeme príkaz, ktorý chceme spustiť na vzdialenom hostiteľovi, a zhromažďujeme informácie o tom, či bol úspešný alebo nie.

Robot Framework FOR Loop (cyklus)

Jednou z najvyužívanejších konštrukcií programovacích jazykov je cyklus FOR. Umožňuje opakovať určitý blok kódu pre daný rozsah alebo zoznam prvkov.  Môžete ho použiť na iteráciu cez rozsahy čísel, zoznamy, reťazce alebo iné iterovateľné objekty. V Robot Frameworku je táto funkcia veľmi užitočná pri automatizácii testov, kde sa opakujú podobné kroky alebo sa pracuje s viacerými dátami.

Syntax cyklu for loop v Robot Frameworke je jednoduchá a zrozumiteľná. Môže sa použiť na opakovanie krokov v rámci testovacieho prípadu alebo na iteráciu cez hodnoty v zozname alebo rozsahu. Tu je príklad použitia cyklu for loop v Robot Frameworku:

Príklad syntax cyklu for loop v Robot Framework
Príklad syntax cyklu for loop v Robot Framework

V tomto príklade sa cyklus for loop opakuje päťkrát, pričom premenná ${index} nadobúda hodnoty od 1 do 5. V rámci každej iterácie sa vykonáva blok kódu, ktorý obsahuje dva kroky Log a jeden krok Set Variable. Na začiatku každej iterácie sa zobrazí správa s aktuálnym indexom, následne sa nastaví premenná ${value} na hodnotu indexu a napokon sa zobrazí hodnota premennej ${value}.

Použitie cyklu for loop môže byť veľmi pružné a uľahčuje opakujúce sa úlohy pri testovaní. Môžete napríklad vytvoriť cyklus for loop na prechádzanie zoznamu dát a testovať určitú funkcionalitu pre každú jednotlivú hodnotu. Týmto spôsobom môžete účinne testovať rôzne scenáre s rôznymi vstupmi.

Robot Framework vs. Selenium – rozdiely a podobnosti

Selenium je populárny nástroj pre automatizáciu testov, ktorý je špecializovaný na testovanie webových aplikácií. Selenium umožňuje interakciu s webovými elementami, simuláciu používateľských akcií a overenie správneho fungovania webových stránok. Selenium podporuje viacero programovacích jazykov, vrátane Pythonu, a je veľmi rozšíriteľný vďaka širokému ekosystému a podpore rôznych nástrojov a frameworkov.

  • Syntax a použiteľnosť: Robot Framework je známy svojou jednoduchou a čitateľnou syntaxou, ktorá umožňuje rýchle písanie testovacích prípadov aj pre začiatočníkov. Na druhej strane, Selenium vyžaduje väčšie technické znalosti a programovacie schopnosti, pretože sa viac orientuje na skriptovanie a interakciu s webovými elementmi.
  • Flexibilita a rozšíriteľnosť: Robot Framework je veľmi flexibilný a umožňuje integráciu s rôznymi knižnicami a nástrojmi pre testovanie rôznych druhov aplikácií. Selenium je špecializovaný na testovanie webových aplikácií, a preto poskytuje rozsiahle možnosti pre interakciu s webovými elementmi a overenie ich správneho fungovania.
  • Podpora pre rôzne jazyky: Robot Framework je implementovaný v jazyku Python, čo znamená, že využíva výhody a rozšírenia existujúceho ekosystému Pythonu. Selenium je viacjazyčný nástroj a podporuje viaceré programovacie jazyky vrátane Pythonu, Javy, C# a ďalších.
  • Komunita a dokumentácia: Robot Framework a Selenium majú aktívne komunity a veľké množstvo dokumentácie, tutoriálov a diskusných fór. Oba nástroje majú bohaté zdroje, ktoré vám pomôžu pri začiatku a získaní znalostí.

Robot Framework v kombinácii so Selenium

Robot Framework v kombinácii so Selenium predstavuje výkonnú dvojicu pre automatizáciu testovania. Ich integráciou môžeš dosiahnuť efektívne a škálovateľné webové testovanie. Selenium poskytuje robustný súbor funkcií na interakciu s webovými prvkami, simuláciu akcií používateľov a overovanie očakávaných výsledkov.

Jednou z kľúčových výhod používania Robot Frameworku so Selenium je jeho kompatibilita s viacerými prehliadačmi. Selenium podporuje rôzne webové prehliadače, napríklad Chrome, Firefox a Safari, čo umožňuje vykonávať testy vo viacerých prehliadačoch súčasne alebo postupne. To zaručuje, že vaša webová aplikácia bude správne fungovať v rôznych prostrediach prehliadačov.

Robot Framework navyše poskytuje vynikajúce možnosti reportovania. Generuje podrobné a prispôsobiteľné reporty, čo uľahčuje analýzu výsledkov testov a identifikáciu problémov. Vďaka zabudovaným kľúčovým slovám a knižniciam môžete ľahko zvládnuť bežné úlohy webového testovania, ako je klikanie na tlačidlá, vypĺňanie formulárov a overovanie obsahu stránky.

Rozšíriteľnosť Robot Frameworku navyše umožňuje integrovať ďalšie užitočné knižnice a nástroje, čím sa rozšíria možnosti automatizácie testovania. Môžete napríklad začleniť databázové knižnice, knižnice na testovanie API alebo dokonca vlastné knižnice prispôsobené vašim špecifickým požiadavkám.

Kombinácia Robot Framework a Selenium ti umožňuje vytvárať spoľahlivé a udržiavateľné testovacie súbory. Vďaka intuitívnej štruktúre a výkonným funkciám ti táto kombinácia rámcov umožňuje vytvárať komplexné webové testy, ktoré pokrývajú rôzne scenáre, overujú funkčnosť a zabezpečujú kvalitu vašich webových aplikácií. Či už si začiatočník alebo skúsený IT tester, Robot Framework so Selenium poskytuje všestranné a efektívne riešenie na automatizáciu webových testov, ktoré ti pomôže ušetriť čas, zvýšiť produktivitu a dodať vysokokvalitný softvér.

Robot Framework vs. Cucumber

Cucumber je ďalší populárny nástroj pre automatizáciu testov, ktorý sa zameriava na Behavior Driven Development (BDD) a testovacie scenáre napísané v prirodzenom jazyku. Cucumber umožňuje vytvárať zrozumiteľné testovacie prípady pomocou tzv. „Gherkin“ jazyka a podporuje integráciu s rôznymi programovacími jazykmi, ako je Java, Ruby, JavaScript a ďalšie.

  • Syntax a jazyk: Robot Framework používa tabuľkovú syntax s kľúčovými slovami, ktorá je ľahko čitateľná a pochopiteľná, podporuje formáty testovacích prípadov v obyčajnom texte alebo vo formáte HTML a testovacie prípady sa píšu v jazyku s vlastnou doménou (DSL), podobnou angličtine. Cucumber používa prístup behavior-driven development (BDD) a využíva syntax Given-When-Then. Testovacie prípady sa píšu v jazyku Gherkin, ktorý je formátovaný ako obyčajný text a je ľahko čitateľný a zapisovateľný.
  • Podpora jazykov: Zatiaľ čo Robot Framework poskytuje podporu pre Python a Javu,  Cucumber primárne podporuje programovací jazyk Ruby, ale existujú aj implementácie pre iné jazyky, ako sú Java, JavaScript a .NET.
  • Ekosystém a integrácia: Robot Framework má bohatý ekosystém s množstvom knižníc a nástrojov pre automatizované testovanie. Cucumber má tiež rastúci ekosystém, ale nemusí byť tak rozsiahly ako Robot Framework. Cucumber sa často používa v kombinácii s inými nástrojmi a frameworkmi na vykonávanie konkrétnych typov testov, napríklad Cucumber-JVM pre projekty založené na Jave.
  • Paradigma testovania: Robot Framework rôzne paradigmy testovania, ako sú testovanie riadené kľúčovými slovami, testovanie riadené dátami a testovanie riadené správaním. Cucumber je primárne zameraný na behavior-driven testing (BDD), pri ktorom sa testovacie prípady píšu v ľudsky čitateľnej forme, ktorú je ľahko pochopiteľná pre zainteresované strany.
  • Komunita a používanie: Robot Framework má veľkú a aktívnu komunitu s rozsiahlymi dokumentáciami a dostupnými zdrojmi. Cucumber: Má tiež silnú komunitu, najmä v Ruby ekosystéme. Cucumber sa často používa v agilných vývojových prostrediach a tímoch, ktoré pracujú s BDD.

Robot Framework vs. Cypress

Cypress je moderný nástroj pre automatizáciu testov webových aplikácií, ktorý sa vyznačuje svojou jednoduchosťou a rýchlosťou. Cypress poskytuje jedinečnú architektúru, ktorá umožňuje testovať aplikácie priamo v prehliadači a ponúka bohaté možnosti pre interakciu s webovými elementmi a overenie správnosti webových stránok.

  • Syntax a jazyk: Cypress používa moderný JavaScriptový syntax, ktorý je založený na reťazcovom API. Je písaný v jazyku JavaScript.
  • Podpora jazykov: Cypress používa JavaScript, preto je primárne zameraný na tento jazyk. Môže však integrovať aj iné jazyky cez rozšírenia.
  • Ekosystém a integrácia: Cypress má rastúci ekosystém s viacerými dostupnými pluginmi a rozšíreniami. Je navrhnutý tak, aby poskytoval robustné testovacie riešenie pre moderné webové aplikácie. Je integrovaný s nástrojmi ako CI/CD platformy a testovacie správcovské systémy.
  • Paradigma testovania: Cypress je zameraný na end-to-end testovanie a sledovanie správania webových aplikácií v reálnom prehliadači. Jeho prístup je orientovaný na interakcie s používateľským rozhraním a kontrolu správnosti.
  • Komunita a používanie: Cypress má rastúcu komunitu, najmä v rámci moderných webových aplikácií. Cypress je často používaný pri vývoji single-page aplikácií a webových frameworkov.

Robot Framework vs. Playwright

Playwright je relatívne nový nástroj pre automatizáciu testov, ktorý bol vyvinutý Microsoftom. Jeho hlavnou výhodou je možnosť testovať rôzne druhy aplikácií vrátane webových, desktopových a mobilných. Playwright poskytuje silnú podporu pre viaceré prehliadače a programovacie jazyky, čo umožňuje vykonávať testy vo viacerých prostrediach.

  • Syntax: Playwright používa JavaScriptový jazyk a poskytuje API pre písanie testovacích prípadov. Využíva moderné asynchrónne programovanie a ponúka vysokú flexibilitu pri písaní testov.
  • Podpora jazykov: Playwright je primárne zameraný na JavaScript, ale poskytuje aj podporu pre ďalšie jazyky, ako sú Python, C# a TypeScript.
  • Ekosystém a integrácia: Playwright ponúka množstvo pluginov a rozšírení. Je navrhnutý tak, aby poskytoval robustné riešenie pre automatizované testovanie webových aplikácií a je integrovateľný s rôznymi nástrojmi CI/CD.
  • Paradigma testovania: Playwright je zameraný na automatizáciu testovania webových aplikácií v reálnych prehliadačoch. Taktiež poskytuje aj výkonné API na ovládanie prehliadačov a umožňuje simuláciu interakcií s používateľským rozhraním.
  • Komunita a používanie: Playwright má rastúcu komunitu s dôrazom na moderné webové aplikácie a rýchly vývoj.

Robot Framework vs. Code (Visual Studio Code)

Code je integrované vývojové prostredie (IDE) vyvinuté spoločnosťou Microsoft. Hoci nie je primárne určený pre automatizáciu testov, poskytuje výhody ako syntax highlighting, autokompletné funkcie a podporu pre rôzne jazyky a frameworky. Code môže byť využitý pri písaní testovacích skriptov a interakcii s rôznymi testovacími nástrojmi.

  • Syntax: VS Code je vývojové prostredie s plnohodnotným textovým editorom. Syntax vo VS Code závisí od používaného jazyka a je podporovaná prostredníctvom rôznych rozšírení a pluginov.
  • Podpora jazykov: VS Code podporuje množstvo programovacích jazykov, vrátane Pythonu, Javy, C#, JavaScriptu a mnohých ďalších, s možnosťou rozšírenia o ďalšie jazyky cez príslušné rozšírenia.
  • Ekosystém a integrácia: VS Code je veľmi rozšírené a má široký ekosystém rozšírení, ktoré umožňujú prispôsobenie a rozšírenie funkcionalít editora. VS Code sa ľahko integruje s rôznymi nástrojmi vývojárskeho procesu, ako sú linters, debuggery a správcovské systémy verzionovania.
  • Paradigma testovania: VS Code nie je špecificky zameraný na paradigmu testovania. Poskytuje však možnosti pre vývoj, ladenie a spúšťanie testovacieho kódu v rôznych jazykoch prostredníctvom príslušných rozšírení a pluginov.
  • Komunita a používanie: VS Code je jedným z najpopulárnejších vývojových prostredí s veľkou komunitou používateľov. Používa sa vo veľkom množstve projektov pre vývoj softvéru v rôznych jazykoch.

Robot Framework tutorial

Pre tých, ktorí sa chcú naučiť Robot Framework, existuje množstvo tutoriálov a online zdrojov. Tieto tutoriály poskytujú postupného sprievodcu pre začiatočníkov a pokročilých používateľov, ktorí sa chcú hlbšie oboznámiť s funkcionalitou a syntaxou Robot Frameworku.

Nižšie prikladáme pár linkov a príklad kódu, ktoré pre teba môžu byť užitočné:

Robot Framework Youtube

Na platforme YouTube je dostupných veľa videí, tutoriálov a prezentácií, ktoré sú venované Robot Frameworku. Môžeš tu nájsť návody, ako nastaviť a konfigurovať Robot Framework, ako písať testovacie prípady, ako integrovať s ďalšími nástrojmi a ďalšie užitočné informácie, ktoré ti pomôžu rýchlo sa naučiť a efektívne používať Robot Framework.

Odporúčame prezrieť si:

Zhrnutie

Robot Framework je silný a všestranný nástroj pre automatizáciu testov a Robotic Process Automation (RPA). S jeho jednoduchou syntaxou, modularitou a flexibilitou poskytuje efektívny spôsob automatizácie testov a procesov. Bez ohľadu na to, či si začiatočník alebo skúsený tester, Robot Framework ti poskytne prostriedky na zlepšenie kvality softvéru a zníženie nákladov spojených s manuálnym testovaním a opakujúcimi sa úlohami.

Ak si IT tester a ovládaš nemčinu, prezri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť