Marek Babjak
Senior Test Automation Engineer
Blog
Marek Babjak
Senior Test Automation Engineer
Po Robot Framework 4 a Robot 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:
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´.
Ď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.
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.
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.
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é:
robot --language Finnish test.robot
je možné použiť aj viac jazykov naraz
robot --language cs --language pl test.robot
Language: Finnish
*** Asetukset ***
Dokumentaatio Example using Finnish.
from robot.api import Language
class Pikachu(Language):
settings_header = 'pika'
variables_header = 'pikapi'
test_cases_header = 'pikachu'
Všetkých 68 zmien si môžete prezrieť v release notes. Vo verzii 7.0 možno pribudne aj podpora pre OSTRAJavu ;)