Škálovatelná automatizace testů pomocí Robot Framework

Příběhy z projektů

Úvod

V roce 2017 vznikl u klienta (nadnárodní společnost z oblasti automotive) program řídící několik projektů, které mají za cíl zajištění spokojenosti koncového zákazníka.

Práce se zákazníkovou spokojeností je umožněná skrze integraci relevantních systémů do mezinárodního CRM  i díky rozšiřování funkcí CRM a dalších systémů. Zásluhou centralizace informací je možné zákazníkovi poskytovat přesnou zpětnou vazbu a další užitečné informace.

O čem to bude

Představení projektu

Automatizace CRM

Překážky a úspěchy

Robot Framework

Automatizace CRM

S rostoucí robustností CRM rostly i nároky na úsilí vynakládané na regresní testování. Toto přirozeně vedlo ke snaze regresní testy automatizovat. Po úspěšném Proof of Concept byl jako nástroj zvolen Robot Framework. V tu chvíli fungovalo CRM jen pro Českou republiku na několika různě nastavených uživatelích a připravovalo se rozšíření o další 3 země.

Já jsem naskočil do  rozjetého vlaku až na začátku roku 2019, kdy už byl vývoj prvních, nových trhů u konce a počet našich testů překročil 200. Ve chvíli, kdy jsem přebíral test automation agendu, bylo naplánované rozšíření CRM o dalších 6 trhů, každý s 3 a více uživatelskými rolemi. V tuto chvíli kód nepočítal s takovou robustností systému a bylo tedy, ještě víc než dříve, nutné ho smysluplně parametrizovat, připravit na další škálovatelnost, a minimalizovat tak budoucí úsilí vynakládané na jeho vývoj a údržbu.

Překážky a úspěch

V průběhu optimalizace testovací sady ale přišel do hry update databáze na SAP S/4HANA a „facelift“ CRMka, které vedly k jeho dočasnému odstavení. V tuto chvíli jsme byli na počtu téměř 600 automatizovaných frontendových SIT testů, jejichž exekuce mohla trvat od začátku do konce pracovního dne.

Po odstávce bylo nutné většinu testů kompletně přepsat, protože se úplně změnila struktura frontendu. Tohle byla asi nejzajímavější výzva. Na co nejrychlejší dodání informací o stavu systému byl v tu dobu velký tlak a díky dobré, týmové práci a maximálnímu nasazení se nám to podařilo.

V následujících týdnech se podařilo optimalizovat nejpalčivější místa a sjednotit keywordy pro všechny testy tak, že  stačilo změnit několik parametrů a rázem byl hotový test pro jinou zemi, nebo uživatelskou roli. Rozšiřování sady testů o nové trhy, díky sdíleným keywordům, zabralo zlomek času oproti minulosti. I při vývoji testů na nové funkcionality je zpravidla možné znovu použít mnoho z již existujícího kódu.

Dneska se blížíme k počtu 1000 testů na 12 zemích, z nichž každá má  3 a více uživatelských rolí. Údržba této sady je nicméně mnohem jednodušší, než byla v době, kdy testy obsluhovaly pouze první z nových zemí. Díky efektivnější paralelizaci běhu testů se zároveň dozvíme výsledky během pár (3-4) hodin. Podařilo se nám tedy docílit stavu, kdy nejsme otroky automatizace a nikdy nekončící údržby testovací sady. Automatizace nám teď naopak dobře slouží. Jen pro představu, úsilí na manuální otestování regresních testů se pohybuje v řádu týdnů.

Vzhledem k ušetřenému času je pro mě možné pomáhat zbytku týmu při releasovém testování nových požadavků, a tak za všech okolností pomoci zajistit kvalitní výstupy vypovídající o stavu systému co možná nejdříve.

Robot Framework je open source framework pro automatizované testování. Používá přitom lidsky čitelnou, keyword-driven syntax. Robot Framework je rozšiřitelný o knihovny napsané v Pythonu (nebo Javě). Zároveň se z existujících keywordů dají tvořit nové, vlastní.

Autor: Kryštof Hadaš

Kryštof se věnuje vývoji automatizovaných testů zaměřených převážně na frontend. Nejvíc ho naplňuje vytváření nových test automation řešení od definování testů a nástrojů až po jejich zapojení do pipeline.