JIRA seriál: #8 Automatizace opakovaných manuálních činností

Při práci test manažera či defekt manažera musím v JIRA často dělat manuální činnosti, které procházejí přes několik obrazovek nebo na jedné obrazovce opakovaně provádím sekvenci shodných akcí (např. výběrů z rozbalovacích seznamů). Ve jménu hesla „lenost matka pokroku“, jsem se snažil najít cestu, jak tyto činnosti zefektivnit. Šikovnou možností, jak na opakované manuální činnosti vyzrát, je použití nástroje pro automatizaci testů. Nástroj zde nebudeme používat pro automatizaci testů, ale zabrousíme do oblasti s módním názvem RPA (Robotic Process Automation). V úvodu raději zdůrazňuji, že ambicí tohoto článku není prezentovat detailní postup, jak s daným nástrojem či třídou nástrojů pracovat. Mým cílem je ukázat princip, jak můžete porci manuální práce zautomatizovat a namotivovat k vyzkoušení. Nic víc, nic míň. 😊 

Pro automatizaci činností používám rozšíření do prohlížeče, které umožňuje nahrát sekvenci akcí uživatele, v případě potřeby ji zeditovat a následně automatizovaně přehrát. Historicky prvním v této třídě nástrojů bylo Selenium IDE. I dnes můžete využít Selenium IDE, ale existuje i pár konkurentů (např. Katalon Recorder, UIVision RPA). Já používám Katalon Recorder. Výhodou těchto „udělátek“ proti „dospělým“ nástrojům pro automatizaci testů je snadné ovládání, snadná instalace a konfigurace, možnost instalace i v prostředích s restrikcemi na instalovaný SW a v neposlední řadě cena. Všechna jsou v použitelné verzi k dispozici zdarma. V následujícím textu nebudu suplovat uživatelskou příručku ke Katalon Recorderu, tu najdete na webu a na Youtube najdete i řadu tutoriálů. Představím základní informace a dotknu se pár příkladů v JIRA.  

Po instalaci a spuštění v prohlížeči se zobrazí okno podobné následujícímu obrázku (v obrázku je v pravé části již obsah prvního skriptu – to tam samozřejmě po instalaci nebude). 

V levé části je menu, kde nejdůležitějšími položkami jsou Test Suites a Test Data. V Test Suites si můžete do složek dávat skripty sloužící pro určitou oblast. V Test Data pak můžete připojit datové soubory ve formátu CSV nebo JSON, z nichž můžete číst data pro jednotlivé běhy skriptu („modří už vědí“, že přesně o tomto je data driven testing, tj. spuštění stejného skriptu s jinými hodnotami dat).  

V pravé části obrazovky pak je nahoře menu sloužící k zaznamenání nového skriptu (Test Case), spuštění skriptu či spuštění celé jedné sady (Test Suite) či všech sad skriptů. V průběhu spuštění skriptu jej můžete pozastavit tlačítkem Pause Execution nebo dojde k automatickému pozastavení, pokud jste zadali Breakpoint na libovolném příkazu. 

V prostřední, největší, části okna je pak zobrazen obsah konkrétního skriptu. Skript je zaznamenaný rekordérem v jazyce Selenese (příkazy by měly být kompatibilní s příkazy používanými v konkurenčním Selenium IDE).  

To by pro úvod mohlo stačit, pojďme se podívat na příklady konkrétních použití. 

Export dat z JIRA 

Jednou z největších bolestí JIRA je fakt, že nedokáže příliš historizovat data (uchovávat a vhodně vyreportovat hodnoty určitých metrik v čase). Také reportovací možnosti jsou v JIRA omezené, resp. pokud chcete propracovanější reporty, zaplatíte majlant za další plug-iny. Obě bolístky řeším na projektech denním exportem dat z JIRA a jejich zpracováním do přehledných reportů ve starém dobrém Excelu. Načtení vyexportovaných dat a aktualizaci excelových reportů řeším pomocí maker, resp. procedur v jazyce Visual Basic for Applications (VBA). Pro „jednoklikový“ export z JIRA používám Katalon Recorder. Na malém projektu budete potřebovat exportovat minimálně seznam tiketů (tímto termínem označuji obecně entitu jakéhokoli IssueType, třeba Bug, Change, Task – JIRA používá termín Issue, který má ale v projektovém managementu specifický význam, proto ho nepoužívám) a přehled exekucí aktuálního cyklu. Na větších projektech můžete potřebovat exportních souborů více. Následující obrázek znázorňuje moji exportní Test Suite, která obsahuje 6 exportních skriptů (Test Cases).  

Každý skript zaznamenává průchod několika kroky průvodce. Díky této automatizaci každé ráno spustím Play Test Suite a jdu si uvařit kafe. Po několika minutách mám na disku sadu vyexportovaných souborů s čerstvými daty.  

Už slyším zarputilé automatizéry, že by to šlo exportovat přes inteligentnější automatizační skript třeba v Pythonu přes scheduler. Jasně, souhlasím. Ale jako téměř vždy v životě platí i v tomto případě známé „něco za něco“. Záznam skriptu v Katalon Recorderu zvládne úplný nováček bez jakékoli znalosti programování, nebudete bojovat s přihlášením do JIRA (v řadě korporátních prostředí je implementované SSO), instalaci máte za minutu atd. 

Změna IssueType pro tikety s různým workflow 

JIRA umožňuje na EDIT obrazovce změnit IssueType, pokud starý i nový typ používají stejné workflow. Pokud mají jiné workflow, musíte použít trik. Nejprve převáděný tiket změníte jako Subtask jiného tiketu přes menu More -> Convert to sub-task a pak využijete ze stejného menu příkaz Convert to Issue. V obou případech vás čeká několika krokový průvodce. Ideální příležitost pro Katalon Recorder. Z názvů skriptů v sadě Helpers získáte tušení, jaké pomocníky ještě používám:  

Automatizované vytváření testovacích cyklů 

V mnoha prostředích je test manažer zodpovědný za přípravu testovacích cyklů. Na větších projektech může být tato aktivita velmi časově náročná. Pracnost je možné snížit s využitím Katalon Recorderu. V tomto případě si už ale nevystačíme se skriptem zaznamenaným rekordérem. Při vytváření testovacích cyklů či složek musíme pokaždé použít jiný název. Ideální příležitost pro přístup řízený daty (data driven approch).  

Začneme vytvořením textového CSV souboru s daty (kromě dat obsahuje řádek se záhlavím sloupců). Pak zaznamenáme pomocí rekordéru uživatelské akce při manuálním vytváření složky/testovacího cyklu atd. Následně je třeba doplnit do zaznamenaného skriptu instrukce pro práci s datovým souborem. Do detailů nepůjdu, na webu Katalonu najdete detailní informace k data driven přístupu. Následující obrázek dává náhled na podobu instrukcí, kterými vytvářím podsložky testovacího cyklu (v naší JIRA je použitý TM plug-in Zephyr Squad). Z názvů skriptů v levém menu vytušíte, jaké činnosti jsem v kontextu přípravy testovacích cyklů automatizoval. V okně se skriptem jsem pak orámoval oblasti, kde bylo nutné udělat změnu v souvislosti s vytažením dat z datového souboru. 

Připadne vám automatizace práce prostřednictvím Katalon Recorderu sexy? Neváhejte a pusťte se do zkoušení. Katalon Recorder můžete použít v libovolné webové aplikaci. Kromě automatizace manuálních činností se dá použít pro automatizované zakládání testovacích dat (s využitím CSV s daty) a… když je nejhůř, tak i pro spouštění jednoduchých automatizovaných testů. Před rozsáhlejší automatizací testů ale varuji. Všechna tato rozšíření prohlížečů jsou vhodná pro malou sadu testů (např. sadu rychlých smoke testů). Pro serióznější automatizované testování hledejte pokročilejší nástroj, jinak se utopíte v pracnosti při vytváření testů a zejména při jejich údržbě.

Co se dozvíte v dalším díle?

Jak si usnadnit práci díky funkci hromadné změny! Sledujte nás na sítích, ať vám to neunikne...

Autor: Miroslav Renda

Mirek se pohybuje v různých projektových rolích v IT byznysu více než 25 let. Posledních 8 let si v roli test managera užíval zajímavé projekty ve velkých českých bankách a v oblasti automotive. Je spolupachatelem knihy Efektivní testování softwaru vydané nakladatelstvím GRADA. Miluje své dvě děti, přírodu a sport v jakékoli podobě.