Michal Jirka
Test Automation Engineer
Blog
Michal Jirka
Test Automation Engineer
Robot Framework plus Python – toto spojení od roku 2005 hýbe světem automatizovaného testování. Právě v tomto roce spatřila světlo světa jeho první verze, kterou jistý Fin Pekka Klärck vyvinul v rámci své diplomové práce na univerzitě. Od té doby prošel tento framework (a vůbec celá komunita kolem něj) vývojem. Dnes je Robot Framework obecně jedním z nejpoužívanějších nástrojů pro automatizaci testů a koncem března 2021 přišli vývojáři s upgradem na Robot Framework 4. Pojďme se v tomto článku podívat na to, co nástroj přináší ve své nové verzi.
U nás v Teseně je stěžejním nástrojem na několika automatizačních projektech. Pro naše významné klienty pomocí něj vytváříme vysoce efektivní automatizované testy webových a desktopových aplikací, ale i testy integrační, případně databázové.
Když si otevřeme Release notes k nové verzi, zjistíme, že seznam změn je velice rozsáhlý. Celkem došlo k 72 vylepšením, změnám či opravám, které jsou rozdělené dle priorit.
V tomto článku jsem se rozhodl popsat z mého pohledu nejvýznamnější změny.
Jak známo, světy testingu a vývoje si jsou dle moderních metodik čím dál tím blíž. Možná právě to se promítá do dvou následujících významných změn, které Robot Framework zaznamenal.
Princip IF-ELSE asi není třeba blíže představovat. Pro programátory zcela běžná věc, ve světě testingu velmi kontroverzní téma. Vyjdeme-li ze základních principů stavby testovacích scénářů, větvení v nich pravděpodobně nenalezneme. Pravděpodobně i proto tato struktura dlouhou dobu v Robot Frameworku chyběla. Běžnou praxí pak bylo obcházet toto řešení pomocí Run Keyword If, což však v některých případech znamenalo „jet z Prahy do Brna přes Vídeň“.
V nové verzi už ale tento workaround potřebovat nebudeme. Strukturu IF-ELSE lze zapsat takto:
IF ${Count} > O
Do Something
Another keyword
END
Kód je dokonce dále možné rozvětvit pomocí ELSE následovně:
IF ${Count} > O
Do Something
ELSE
Another keyword
END
Domnívám se, že většina vývojářů automatizovaných testů tuto možnost s radostí uvítá. I já osobně jsem už stihl tuto strukturu v kódu pro klienta využít.
Druhou významnou kapitolou je vnořování dvou a více (doporučuji maximálně dvou) cyklů do sebe. Do dnešní doby bylo možné v Robot Frameworku implementovat pouze jeden FOR cyklus. V případě, že jsme pak chtěli v rámci jedné iterace použít opět FOR cyklus, museli jsme si vypomoci zavoláním jiného keywordu, který „vnořený“ FOR cyklus obsahoval. I tento workaround by měl být minulostí. Od nové verze Robot Frameworku můžeme implementaci zefektivnit. Pro názornost si představme situaci, kdy potřebujeme najít jednu konkrétní hodnotu v tabulce. Budeme tedy procházet každý řádek a v rámci nich pak všechny buňky:
FOR ${row} IN @{rows}
FOR ${cell} IN @{row}
IF '${cell}' == 'EXPECTED VALUE'
Process Cell ${cell}
END
END
END
Od počátku Robot Frameworku bylo zavedené, že všechny testy nabývaly buď statusu PASS nebo FAIL. Nyní jako velká novinka přibývá status SKIP. Existuje několik způsobů, jak tohoto statusu dosáhnout, podrobně jsou popsané v Release Notes. Zde popíšu ty základní:
robot --skiponfailure not-ready ./
a výsledek:
Robot Framework už dále nepodporuje koncept rozdělení testů na critical / non-critical. Důvodů k této změně je několik. Jako největší z nich autoři uvádějí právě zavedení SKIP statusu, o kterém byla řeč výše.
Označení Critical vnášelo do výsledků testů kombinace (PASS – Critical, PASS – Non-critical, FAIL – Critical, PASS – Non-critical). S rozšířením o SKIP status by se opět zvýšil počet kombinací, kterých by mohly testy ve výsledku nabývat (SKIP – Critical, SKIP – Non-critical). Vnášelo by to do výsledných logů nepřehlednost a některé kombinace by ztrácely svůj význam. Navíc koncept SKIP statusu je svým významem do značné míry velmi podobný původnímu významu Critical testů. Vývojáři se tedy nyní rozhodli Criticality status odstranit.
Závěrem můžeme s potěšením říct, že vývoj oblíbeného nástroje Robot Framework jde i po mnoha letech fungování stále vpřed. Vývojáři Robot Frameworku tak vytváří skvělé podmínky pro to, aby se komunita kolem jejich nástroje rozšiřovala a mohly tak vznikat například stále novější knihovny plné různých užitečných funkcionalit.
Pokud jste po přečtení tohoto článku dostali chuť vyzkoušet si nástroj Robot Framework v praxi, naučit se základy nebo případně rozšířit své znalosti, rádi Vám s tím pomůžeme. V rámci našich školení aktuálně poskytujeme následující kurzy – kurz pro začátečníky a nebo večerní škola.
Nenechejte si ujít nejnovější informace.
Vyplňte nám vaši e-mailovou adresu a dostávejte pravidelnou nálož informací ohledně nadcházejících školení, akcí a testingového know-how.
Chcete poradit?
Napište si o naši bezplatnou, neprodejní konzultaci zdarma. Vyplňte formulář a my se vám ozveme zpět.
Upozornění