Rational1 Robot

Roman Nepšinský aka Mem/Mlat, 12.05.2002
Obsah
Rational Robot je software pro automatické testování dvouvrstvých (client/server) a internetových aplikací na platformě Microsoft Windows (9x, NT). Je součástí softwarového balíku Rational Suite Enterprise. K Rational Robot patří dále komponenty:
- Rational Administrator - používá se pro vytváření a správu projektů Rational, v nichž se uchovávají informace o testování
- Rational TestManager Log - slouží k zobrazení a kontrole výsledků testování
- Object Properties, Text/Grid/Image Comparators - slouží k zobrazení a analýze výsledků kontrolních bodů (verification points) při přehrávání testovacích skriptů
- Rational SiteCheck - využívá se ke správě internetových a intranetových webů
Rational Robot umožňuje provádět:
- funkční testování - zaznamenáním a přehráním skriptu (GUI script) pro testování uživatelského rozhraní (skript simuluje pohyb uživatele v aplikaci a ověřuje stavy objektů uživatelského rozhraní podle definovaných kontrolních bodů)
- výkonnostní testování - zaznamenáním a přehráním sezení (session, VU script) pro testování zátěže víceuživatelského systému
Rational Robot přímo podporuje některá integrovaná vývojová prostředí (IDE) pro jazyky jako Java, HTML, Visual Basic, Oracle Forms, Delphi, PowerBuilder. V praxi to znamená, že je Robot schopen v aplikaci identifikovat objekty vlastní danému jazyku a prostředí (např. VCL komponenty v případě Delphi) a spravovat jejich vlastnosti při testování.
Rational Robot spolupracuje také s dalšími testovacími nástroji z balíku Rational Suite Enterprise jako jsou Rational Purify, Rational Quantify, Rational PureCoverage (skripty robota v testované aplikaci je možné vykonávat pod těmito diagnostickými nástroji).
Skripty pro testování aplikace je možné v Rational Robot automaticky zaznamenat volbou Record GUI/session. Robot při tomto nahrávání automaticky zjišťuje interakci uživatele s objekty systému (vstup z myši a klávesnice v případě GUI skriptů, resp. API volání v případě VU skriptů) a zaznamenává je ve formě příkazů příslušného jazyka (SQABasic, resp. VU script). V průběhu zaznamenávání je možné do skriptu interaktivně zasahovat a vkládat další prvky jako jsou kontrolní body, časovače, čekání, poznámky ap. S vygenerovanými skripty je následně možné v prostředí Robota manipulovat, upravovat je ap. (skripty je možné také přímo psát bez nutnosti jejich generování).
GUI (Graphical User Interface) skripty slouží ke zaznamenání a přehrání interakce uživatele s rozhraním testované aplikace. Při zaznamenávání GUI skriptu se Robot snaží identifikovat všechny objekty, se kterými uživatel pracuje. Při přehrávání Robot neopakuje přímo uživatelské vstupy (konkrétní polohu kurzoru myši ap.), ale snaží se tyto objekty vyhledávat a provádět na nich adekvátní operace. Robot je schopen rozpoznat všechny standardní objekty Windows a objekty používané v podporovaných IDE. Pro objekty nerozpoznané Robotem je možné nastavit interaktivně jejich typ (volbou ze standardních typů uživatelských prvků jako jsou EditBox, ComboBox ap.). Ve zvláštních případech je možné zvolit low-level zaznamenávání. Při tomto způsobu zaznamenávání ukládá Robot skript ve formě sekvence zpráv a parametrů (např. pohyb kurzoru myši (MOUSEMOVE) + souřadnice kurzoru (X,Y)).
Pro zápis GUI skriptu slouží jazyk SQABasic (syntakticky podobný Visual Basicu). SQABasic umožňuje provádět různé operace s aplikacemi a jejich okny (spouštění aplikací, změna polohy oken, přepínání aktivního okna, test existence okna, test existence souboru, test obsahu schránky Windows ap.), s prvky uživatelského rozhraní (zadávání dat, porovnávání vlastností, porovnávání grafického výřezu ap.) atd.
Pro testování stavu slouží kontrolní body (verification points). Kontrolní body jsou volány příkazy ze skriptu a jejich definice jsou uloženy spolu se skriptem. Je možné vytvořit kontrolní body těchto typů:
Ke každému kontrolnímu bodu se zadává očekávaný výsledek (jestli má dle předpokladů test proběhnout v pořádku nebo skončit chybou). Dále se specifikuje objekt (pomocí nástroje Object Finder), na který se daný kontrolní bod vztahuje, a ověřovací metoda (např. pro alfanumerický kontrolní bod je možné vybrat porovnání citlivé na velikost znaků, nalezení podřetězce, číselnou rovnost, číslo v daném rozsahu ap.). Ke každému kontrolnímu bodu je možné specifikovat čekací stav (wait state). Robot potom v definovaném čekacím čase provádí opakované testy kontrolního bodu do doby, než bude objekt nastaven, anebo je dosaženo nastaveného časového limitu.
- Alphanumeric - testuje alfanumerická data v objektech obsahujících text (EditBox, CheckBox, Label, titulek okna ap.)
- Clipboard - porovnává alfanumerická data umístěna ve schránce Windows
- File Comparison - porovnává dva soubory podle obsahu
- File Existence - ověřuje existenci souboru
- Menu - testuje položky menu (jejich popis, zkratkovou klávesu, stav...)
- Module Existence - zjišťuje, zda je zadaný modul zaveden (v daném procesu nebo kdekoli v paměti)
- Object Data - porovnává data ve standardních objektech Windows (+ objektech jako Visual Basic Data controls, ActiveX controls, HTML and Java objects, PowerBuilder DataWindows, Oracle Forms base-table blocks).
- Object Properties - porovnává vlastnosti ve standardních objektech Windows (-||-).
- Region Image - porovnává uložený výřez obrazovky (bitmapu)
- Web Site Compare - porovnává různě staré verze webového sídla
- Web Site Scan - kontroluje obsah nové verze webového sídla a zjišťuje, zda nedošlo k poškození existujícího obsahu
- Window Existence - zjišťuje existenci a stav okna (normální, minimalizované, maximalizované, skryté)
- Window Image - porovnává uložený obraz okna (bitmapu)
VU (Virtual User) skripty nebo sezení (session) slouží ke zaznamenání komunikace mezi klientem a serverem. Rational Robot sleduje komunikaci zvolenou metodou:
Po skončení nahrávání Robot vygeneruje skript na základě zvolených filtrovaných protokolů (HTTP, ODBC, Oracle, Socket...). Robot je také schopen zjistit povahu a definici dat přenášených v rámci nějaké transakce a na základě toho vygenerovat testovací datapool s vhodnými testovacími daty, které je pak možno hned využít při výkonnostním testování.
- API - zaznamenávají se volání API. Data se sledují na klientské aplikaci
- Network - zaznamenává se síťový provoz (na úrovni paketů) na daném komunikačním kanále
- Proxy - klient a server spolu komunikují přes proxy server, zaznamenává se síťový provoz na proxy (na úrovni soketů)
Datapool je testovací sada dat. Z ní je možné v průběhu přehrávání poskytovat hodnoty proměnným ve skriptu, a tak zajistit dostatečně variabilní a rozsáhlý soubor testovacích dat. V definici datapoolu je uveden seznam sloupců a jejich typů (datapool fields, např. sloupec "Company" typu "Company name" s "random" generovaním), podle těchto typů se pak generují testovací data (datapool data).
Datapooly je možné využívat v GUI i VU skriptech.
- [1] Rational the e-development companyTM
www.rational.com