Projekt automatizace v bance

Tento článek jsem se rozhodl vyprodukovat na projektu v bance v době, kdy jsem tam ještě působil. V článku níže se věnuji pouze jednomu z cca 5-ti automatů, který jsem vyprodukoval. Ještě na začátku bych rád ale vyjmenoval automaty a automatizéry, kteří tam tvoří paralelně svoje věci:

  • Tom
    1. Automat na transakční historii – tento automat narostl do opravdu velikých rozměrů. Mimo to, že už obsahuje několik grafických podmenu pro nastavování, exportování, generování, získávání dat, dokáže zpracovat x-gigový soubor s transakcemi během několika desítek sekund. Projíždí jednu transakci po jedné a na každou z nich aplikuje desítky pravidel, které každá transakce musí splňovat. Kód má už několik tisícovek řádků. Automat zvládne překontrolovat miliony transakcí databázového extraktu oproti několika jednotkám, které byl člověk schopen odkontrolovat manuálně okem. Tudíž dopad a přínos automatu je zde markantní 🙂
    2. Automat na identity – Pracuje se zde opět s gui – tento automat dokáže zakládat data, odblokovávat data. Jeho grafické rozhraní je opět propracované do posledního detailu. Cenný nástroj, který má každý den spuštěno hned několik testerů.
  • Viki
    1. Pracuje především na automatu pro mobilní aplikaci pro Android. Zde používáme Appium, které umí spouštět seleniové příkazy, umí s javou a podporuje jak Android, tak iOS. Aplikace obsahuje GUI, na kterém nastavujeme parametry testu – jaký proces se má pro jakého uživatele provést a co se má následně po provedení testu kontrolovat
    2. Dále se stará o automat na testování přihlašování se do aplikace. Tento automat se přihlašuje a odhlašuje s jednotlivými uživateli a kontroluje, zda se úspěšně přihlásili, případně zda splňují stanovený negativní scénář, který je pro daného uživatele ve vstupním souboru definován
  • Lůca
    1. V současné době přebírá po Tomovi tvorbu testů na iOS aplikaci. Testy se tvoří stejně jako pro Android. Stejně tak se spouští pomocí nástroje Appium.
  • Ondra
    1. Převzal tvorbu automatu na regresní testy. Tento automat obsahuje GUI, kde si člověk nastaví, pro jaké uživatele a jaké testy se mají spustit a jaká data se mají následně kontrolovat. Test je samozřejmě plně konfigurovatelný ať už z GUI nebo pomocí textového souboru s nastavením, které aplikace vždy při spuštění načítá
    2. Dále převzal automat na kontrolu textací v aplikaci – tento automat si z REST API načte pro konkrétního uživatele veškeré aktivní účty a následně pro definované obrazovky porovnává všechny aktuální texty načtené z obrazovky ku očekávaným textům, které jsou definovány pro daný produkt a jeho obrazovku v produktovém katalogu.

Toto je velice hrubý přehled toho, co v bance automatizujeme. Za cca rok, co automatizujeme, jsme se naučili mnoho. Ať už, co se týče javy samotné, Selenia a možností identifikace prvků na stránce (zde je opravdu spousta možností, jak prvek najít – např. samotná xpath obsahuje metody jako contains, translate, atd., se kterými prohlížeč a selenium umí pracovat), Appia a vůbec automatizace na mobilních zařízeních…

Jaké technologie používáme:

Java (SE, EE, GUI – swing)

Selenium – chrome driver

Extent Reports

Napojení na SOAP WS, REST WS, Oracle DB

Appium – testování mobilních zařízení

V následujícím textu popisuji automatizovaný SystemCheck podrobněji, abyste měli představu, jak to přibližně vypadá/vypadalo a co to umí.

V současné chvíli už to takto nevypadá. GUI testu se rozrostlo o několik nových funkcionalit, každopádně pro ilustraci to postačí 🙂

Text je psán sice v přítomném čase, avšak to bylo psáno již v nedávné minulosti, kdy jsem na automatu a v bance ještě dělal.

Je to text poměrně podrobný (možná až zbytečně), takže si případný zájemce o automatizaci najde určitě své a nezájemce úspěšně usne 🙂

Automatizovaný System Check

Na projektu v bance pracuji od července 2016. Přestoupil jsem sem z vlastní iniciativy, jelikož jsem se chtěl posunout a jít někam, kde je potenciál dělat automatizované testy. Když jsem přišel, zjistil jsem, že je to tu opravdu v zárodku, že zde ještě nic automatizovaně nefunguje. Avšak přeci jen pěkný základ tu byl položen Tomem a to v podobě vybraných technologií – Selenia s Javou doplněné o Extent reports. Selenium jako takové je nástroj, díky kterému jsme mimo jiné schopni lokalizovat prvky (webové elementy) webových stránek a aplikací, ale reporting neobsahuje. Přitom reporting je extrémně důležitá část, jelikož na jeho základě vidíme výsledky testu, jsme schopni je interpretovat a někomu prezentovat.

Tudíž na mě už nebylo vymýšlet technologie, ale jen se do toho pustit.

Nejdůležitější je v začátcích vybrat něco, nějakou činnost (proces), která se často opakuje, kterou dělá co nejvíce lidí a u které je potenciál k automatizaci. U těchto věcí je totiž výsledek vidět nejvíce. Pokud se vám podaří vytvořit něco, co každý den používá několik lidí, pak je to krásný začátek, jelikož si toho s velkou pravděpodobností všimne vedoucí osoba, která rozhoduje o tom, zda na automatizaci budete nebo nebudete pálit čas. Pokud se ze začátku nepodaří udělat nic, co by ho zaujalo, pak můžeme mít s automatizací problém, protože nejsou vidět výsledky. To se samozřejmě nemusí týkat projektů, které se na automatizaci specializují 🙂

V následující části bych rád popsal jednu aplikaci, která zajišťuje vykonání každodenního system checku, tedy testu funkčnosti prostředí – nutno podotknout, že testujeme internetové bankovnictví, tudíž všechny testy a automaty se týkají testování funkčností internetového bankovnictví, bankovních transakcí nebo testovacích dat, která se pro testování používají a zpracovávají.

Nyní k aplikaci samotné:

Aplikace je uložena na sdíleném disku (spustitelný jar) a zde ji může spustit kdokoli, kdo provádí system check.

Vstupem pro aplikaci je xls file, do kterého naplníme uživatele, pro které chceme, aby se system check provedl. Program má i své defaultní nastavení, které je obsaženo v textovém souboru přiloženém u aplikace – zde můžeme nastavit různá URL, na kterých automat pracuje, je zde nastavení pro selenium – doby čekání na objevení se webového prvku a jiné.

Po spuštění program pro každého uživatele provede následující kroky:

  • Provolá všechny požadované REST resources (jejich adresy se také plní do vstupního excelu – defaultně provolává něco kolem 10-ti REST resources) a vyhodnotí jejich odpovědi, případně si některé responses (data z responzí) načte do polí (vše se zde vrací a posílá v JSON), která následně využívá např. pro tvorbu transakce nebo hledání konkrétních účtů na Frontendu internetového bankovnictví.
  • S každým uživatelem se přihlásí požadovanou metodou (SMS heslo, pomocí aplikace pro přihlášení nebo jen jméno/heslo), zkontroluje hlavní stránku – že tam má zobrazeny všechny produkty, které se mu vrátili z REST API, a případně vytvoří platbu, pokud jsme toto zadali ve vstupním souboru pro daného uživatele
  • Odhlásí uživatele a jde na dalšího.
  • Po skončení kontroly frontendu se automat vrhne na kontrolu zapsání vytvořených plateb na backendu a v historii transakcí na FE. Kontroluje přítomnost platby v databázi, flag pro odeslání z DB do dalšího systému a nakonec její přítomnost v response REST API, která vrací provedené platby do historie transakcí na frontendu.
  • Na závěr vyplní vše do přehledného HTML reportu, který je vyexportován do složky výsledků a vždy na závěr testu automaticky otevřen na novém panelu prohlížeče. Díky tomu, že je to jednoduchý HTML formát, není problém to přiložit do emailu a odeslat komukoli emailem. Screenshoty jsou přiloženy přímo v HTML v kódování Base64, tudíž není třeba je posílat zvlášť. HTML je kompletní se všemi informacemi, ať se otevře kdekoli.

Aplikace umožňuje kontrolu plateb v databázi přes vlastní GUI i mimo vlastní běh automatu.

Dále je možné se přímo z GUI prokliknout na online návod, nastavit si parametry testu, testovací prostředí, vstupní soubor atd.

Autor: PS

Napsat komentář