Blog

Marek Babjak

Marek Babjak

Senior Test Automation Engineer

Robot Framework 6

Automatizace
Jaké novinky přinesl update Robot Framework 6? Máme tu pro vás přehledné shrnutí!

Úvod

Po Robot Framework 4Robot Framework 5  prichádza nová a kulatá, verzia 6. Pôvodne plánovaná ako verzia 5.1, narástla natoľko, že sa vývojári rozhodli povýšiť ju na 6.0 a my sa teraz pozrieme na jej najzaujímavejšie zmeny:

  • Preťažovanie kľúčových slov 
  • Premenné ako objekty
  • Súkromné kľúčové slová
  • Podpora Python 3.11 
  • Lokalizácia

Preťažovanie kľúčových slov 

Nová verzia Robot Frameworku umožňuje, podobne ako C++, definovať kľúčové slová s rovnakým menom a rôznymi parametrami. 

*** Test Cases *** 

Automatic conflict resolution 

    Execute 'ls' 

    Execute 'ls' with '-lh'

*** Keywords *** 

Execute '${cmd}' 

    Log    Running command '${cmd}'. 

Execute '${cmd}' with '${opts}' 

    Log    Running command '${cmd}' with options '${opts}'.  

V predošlých verziách by táto implementácia skončila chybou ´multiple matching keywords´. 

Premenné ako objekty 

Ďalšie zlepšenie nastalo pri používaní ´Run Keyword´, kde už nie sú argumenty automaticky konvertované na string a umožňujú predávať premenné ako objekty. 

*** Test Cases *** 

Example 

    ${foo} =      Evaluate    {'a':42} 

    Huu '${foo}'      #funguje 

    Run Keyword       Huu '${foo}'      #funguje od verzie 6.0 

    Run Keyword If    True    Huu '${foo}'      #funguje od verzie 6.0 

*** Keywords *** 

Huu '${foo}' 

    Log    ${foo['a']}    WARN 

Do teraz by sa pri použití ´Run Keyword´ poslala premenná ${foo} ako string {'a': 42}, v novej verzii sa pošle správne ako dictionary. 

Súkromné kľúčové slová 

Kľúčové slová v zdrojových súboroch je možné označiť ako súkromné pridaním značky robot:private. Ak sa takéto kľúčové slová používajú mimo tohto zdrojového súboru, zobrazí sa varovanie. Tieto kľúčové slová sú tiež vylúčené z dokumentácie generovanej Libdoc. 

Prichádza Python 3.11, odchádza Python 3.6 

Bola pridaná oficiálna podpora pre Python 3.11, táto verzia je o 10 - 60 % rýchlejšia ako Python 3.10, takže sa odporúča upgradovať aj keď nevyužijete ostatné novinky. 

Zároveň je to posledná verzia s podporou Python 3.6. 

Lokalizácia 

Tvorcovia sa tiež rozhodli otvoriť Pandorinu skrinku jazykovej lokalizácie. Umožniť prístup k tvorbe testov aj tým, ktorí neovládajú angličtinu je šľachetná myšlienka, ale fragmentácia komunity a nezrozumiteľnosť lokalizovaných implementácií môže spôsobiť množstvo problémov v budúcnosti. Na druhej strane, kto nechcel niekedy písať testy v klingončine, nech hodí kameňom.

Pokiaľ by ste chceli začať používať lokalizovanú verziu riadiacich slov, je to veľmi jednoduché:

Globálne nastavenie pomocou parametru --language:

robot --language Finnish test.robot 

je možné použiť aj viac jazykov naraz 

robot --language cs --language pl test.robot

Alebo stačí do svojich súborov pridať riadok Language a pokračovať v zvolenom jazyku:

Language: Finnish 

*** Asetukset *** 

Dokumentaatio        Example using Finnish. 

Najzábavnejšia bude určite možnosť vytvoriť si vlastný jazyk

from robot.api import Language 

class Pikachu(Language): 

    settings_header = 'pika' 

    variables_header = 'pikapi' 

    test_cases_header = 'pikachu' 

A čo ďalej?

Všetkých 68 zmien si môžete prezrieť v release notes. Vo verzii 7.0 možno pribudne aj podpora pre OSTRAJavu ;)