Selenium aneb testování GUI snadno a rychle
Hodnocení uživatelů: / 0
NejhoršíNejlepší 

Pokud se mluví o automatizaci testování, jako první se obvykle člověku vybaví nějaký nástroj, který dokáže simulovat práci uživatele v aplikaci. Jinak řečeno aplikaci, která automatizuje "klikání". Takových nástrojů existuje celá řada a já se k některým z nich časem dostanu. Dnes bych se tu chtěl zmínit o jednom z těchto nástrojů. Jde o Selenium, což je jednoduchá, ale funkční free alternativa k velkým komerčním řešením.

 

Selenium existuje ve dvou verzích - Selenium IDE a Selenium RC. První zmíněná verze je vlastně pluginem do prohlížeče Mozilla Firefox. Selenium RC pak představuje komplexnější řešení, umožňující vytváření a spouštění testů napříč prohlížeči a programovacími jazyky. Já se tu ale dnes chci zaměřit na verzi Selenium IDE, která představuje skutečně rychlou a snadnou cestu, jak zautomatizovat testování webových aplikací.>/p>

Jak už jsem uvedl Selenium IDe je ve skutečnosti pluginem do prohlížeče Mozilla Firefox. To sebou nese zároveň výhody i nevýhody. Jednoznačnou výhodou je snadná instalace v rámci známého systému doplňků prohlížeče Firefox. Další výhodou je, že veškerá práce se odehrává právě jen v rámci tohoto prohlížeče, tedy není nutné mít spuštěný další nástroj. To je ale zároveň také největší nevýhodou Selenium IDE. Testování je kvůli tomu vázáno pouze na tento jeden prohlížeč. Jakkoli je Mozilla Firefox populárním prohlížečem, nepatří při vývoji webových aplikací k vyloženě preferovanému prostředí. Nechci tu ale zabíhat do problematiky vývoje webových aplikací s podporou různých prohlížečů. Každopádně Selenium IDE má toto omezení. Pro testování napříč prohlížeči je, jak už jsme tu psal, určena verze Selenium RC.

Selenium má podobu jednoduchého okna, které umožňuje provádět veškeré činnosti spojené s testy. Tedy jejich nahrávání, úpravu, spouštění i vyhodnocování.

 

 Test je možné vytvořit jeho nahráním. To je výhoda, kterou některé nástroje pro automatizaci testů GUI poskytují. Test je zaznamenávám jako sled kroků, které reálně provedete v prohlížeči. Selenium je převede do podoby svých příkazů. Na obrázku níže je takový záznam kroků vidět.

 

Jde o otevření stránky www.alza.cz. Do pole pro vyhledávání byl vložen txt test a následně bylo kliknuto na tlačítko Hledat. URL stránky, na které je test prováděn, je uvedeno v horní části okna v poli Base URL. V levém panelu okna se zaznamenávají jednotlivé Test Casy. Co záznam to Test Case. V prvé části je vidět sled jednotlivých kroků. Každý krok se skládá ze tří údajů: Příkaz, Cíl a Hodnota. Příkazy jsou vybírány z knihovny příkazů, kterou má Selenium v sobě obsaženou. Zahrnují většinu myslitelných operací, které lze nad webovou aplikací provádět. Jako cíl je zde uveden objekt GUI aplikace, který je identifikován pomocí ID. Hodnota je pak logicky hodnota, kterou jsme zadali do příslušného pole. Na rozdíl od některých jiných nástrojů, sloužících ke stejnému účelu, se zde nepracuje s žádným zápisem v podobě kódu. Selenium používá pouze svoje příkazy a aby bylo možné testy přenášet, ukládá je také v podobě xml. Struktura výstupního xml souboru je značně jednoduchá. Pro výše uvedený příklad by vypadal takto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.alza.cz/" mce_href="http://www.alza.cz/" />
<title>New Test</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td colspan="3">New Test</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=EXPS</td>
<td>test</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=SearchButt</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>

Vytvořený test lze jednoduše spustit. K tomu slouží zelené ikony v záhlaví okna. Jsou zde dvě, jedna slouží ke spuštění všech Test Casů a druhá ke spuštění pouze aktuálního testu. Spuštění testu je provedeno na pozadí a o jeho průběhu jsme informování v okně Selenia a to jednak ve formu Logu zaznamenávajícím průběh testu a navíc jsou provedené kroky testu barevně označené v závislosti na jejich úspěšnosti. 

V této chvíli jsme ale získali pouze klikacího robota, který opakuje nahranou akci. Skutečný test vzniká v okamžiku, kdy existuje kontrola správného chování. Selenium umožňuje vkládat do testů Aserce, tedy kontroly. K dispozici je jich celá řada. Jednou z nejpoužívanějších je asi aserce zobrazení správného textu. Její vytvoření je jednoduché. Můžeme ji celkem snadno vložit do existujícího testu. Následující obrázek ukazuje, jak do dříve vytvořeného testu vložíme aserci existence text test. Aserce je přístupná pomocí kontextového menu. Stačí označit požadované slovo a kliknout pravým tlačítkem myši.

 

Selenium na základě volby v kontextovém menu vloží do testu příslušný krok.

 

Bylo by vhodné při této příležitosti říci, že Selenium má k dispozici dvě podoby kontrol. Jednak už zmíněnou Aserci ale také Verifikaci. Rozdíl mezi nimi je v tom, že při selhání Aserce celý test končí, při selhání Verifikace je tato chyba zaznamenána, ale test pokračuje dál.

Testy je možné vytvářet také ručně. Nebo , a to je asi častější, je možné nahrané testy dále upravovat. Je možné upravovat jednotlivé kroky, mazat je, nebo přidávat další. Na obrázku výše je patrné, že po označení kroku je v polích pod tabulkou kroků načten obsah označeného kroku. Každou jednotlivou složku kroku je tak možné editovat. Příkazy lze měnit pomocí komboboxu, který obsahuje jejich kompletní přehled. Cíl lze dohledat pomocí tlačítka Find. Změna hodnoty v kroku je snad jasné. Všechny úpravy, které lze s krokem provádět, jsou zobrazeny po kliknutí pravým tlačítkem myši nad příslušným krokem.

Myslím, že jako úvod to zatím stačí. Selenium je skutečně jednoduchý nástroj, ale pro běžné testování stačí. Tedy v případě, že oželíte například reportování výsledků testů. Pro vytváření rychlých jednoduchých testů je to nástroj skoro ideální, protože je stále po ruce a je v celku intuitivní ho používat. Pro větší projekty už bych s jeho používáním váhal. Myslím, že zde poskytují komerční nástroje přeci jen větší komfort.

 

Nejbližší události


Testování software, Powered by Joomla!; Joomla templates by SG web hosting