Automatické testování GUI
Specifikace
Pozor na rozsah dokument by měl mít cca 10 stran nemusíte rozebírat všechny funkční funk vybrat si a popsat detailněji detailn jen ty
požadavky
nejdůležitější/nejzajímavě jší/nejzajímavější je žádoucí, aby vybraná množina požadavků požadavk byla konzistentní tj. vybranou část ást popište celou, ne od každého trochu
Odevzdání do 04. 12. 2010
Životní cyklus testů test
Automatické testování GUI
Automatické testování Aplikace
jako černá erná skříňka skříň
Nástroje Selenium WebTest HttpUnit JMeter AutoIt
Napsáno přímo v Javě Podpora
Ověřování výstupů v různých ůzných formátech
formulářů JavaScript základní HTTP autentizace cookies page redirection kontainery pro formuláře, e, tabulky, linky XML DOM plain text
Lze snadno integrovat v jUnit
Původně pro web aplikace Dnes už obecná 100% java desktop aplikace pro testování funkcionality a měření měř výkonu pod zátěží Podpora
zátěžové testy Web – HTTP/HTTPS SOAP DB via JDBC LDAP JMS
pluginy
MS VS Test Framework Integrováno přímo ímo do Visual Studia 2005 a dále Řada druhů testů:
Unit,
Database, Load, Web a Manual
Jednotná konzole pro spouštění spoušt a zobrazování výsledků
MS VS Web Test Framework
Možnosti: Web
Test Recorder – nahrání kroků krok testu rozšířená konfigurace – prohlížeč, počet spuštění,… přidávání pravidel mapování testovacích dat na data v databázi bez nutnosti psaní kódu
Selenium
Selenium IDE
Selenium Remote Control
Firefox plugin Různé prohlížeče e a programovací jazyky
Selenium Grid
Paralelní spouštění testů
Selenium
Selenium IDE
Selenium Remote Control
Firefox plugin Různé prohlížeče e a programovací jazyky
Selenium Grid
Paralelní spouštění testů
Selenium
Selenium IDE
Selenium Remote Control
Firefox plugin Různé prohlížeče Programovací jazyky
Selenium Grid
Paralelní spouštění testů
Selenium
Selenium IDE
Selenium Remote Control
Firefox plugin Různé prohlížeče Programovací jazyky
Selenium Grid
Paralelní spouštění testů
Selenium
Selenium IDE
Selenium Remote Control
Firefox plugin Různé prohlížeče e a programovací jazyky
Selenium Grid
Paralelní spouštění testů
SLOW
Selenium IDE
Features IDE Snadné nahrávání akcí a playback Inteligentní výběrr entit pomocí ID/jmen/XPath Autocomplete a nápověda nápově pro příkazy Selenia Možnost ladění testů Ukládání testů pro Selenium RC
standardně
se testy ukládají jako HTML tabulky ale podpora pro spoustu jazyků jazyk
Jen pro Firefox
Spuštění Selenium IDE Spušt
Jak Selenium IDE pracuje?
...video... http://seleniumhq.org/movies/intro.mov
Ukázka jednoduchého testu a formát výstupu formátů
Základní příkazy p
type click
vloží text do zadaného elementu (políčko) (polí klikne na odkaz nebo na tlačítko tla – používá se typicky v případě, p že tlačítko nezpůsobí přechod echod mezi stránkami (nebo reload) clickAndWait klikne a počká, poč než se nahraje celá stránka, pak teprve pokračuje pokra v testu – používá se, když tlačítko tla způsobí přechod mezi stránkami select vybere hodnotu z rolovací nabídky assertTextPresent ověříí existenci textu někde n na stránce verifyTextPresent totéž, ale nezpůsobí nezp ukončení testu
Spouštění testů mimo IDE Spoušt
Best practices
Obecné rady
Hodně malých testů krátké
scénáře zaměřené ěřené na jednu konkrétní věc v snadno v nich najdete, co způsobuje zp problém daleko lépe se udržují
Seskupení testů,, tzv. suite pokud
chcete mít sadu testů test postupně za sebou
Click vs. ClickAndWait
Click pokud
nedochází k přechodu řechodu mezi stránkami
JavaScript/AJAX akce
občas
se ale čekat ekat musí
použít příkaz waitForXXX
ClickAndWait pokud
dochází k přechodu echodu mezi stránkami
jinak dojde k timeoutu
může že
dojít k timeout i jindy?
ano, pokud je odezva testované aplikace příliš p rychlá
WaitForXXX
clickAndWait | save | |
type | name | Pavel |
click | save | |
waitForElementPresent | name | |
type | name | Pavel |
Nezachycené události
Odeslání formuláře e tlač tlačítkem ENTER ručně
vložit příkaz submit(formId)
Přepnutí epnutí do jiného okna nebo iframe ručně
vložit příkaz selectWindow(windowId), selectWindow(windowId) resp. selectFrame(frameId)
Automatické doplňování ování ve formulá formulářích které
poskytuje přímo ímo prohlížeč prohlíže
a další doporučuje uje
se prostudovat nápovědu, nápov fóra, ...
Pevně zachycené události
Seznamy odkazů nahrány pevn pevně Jméno
Povolání
Akce
Obi-Wan Kenobi
Jedi Master
Smazat
Yoda
Grandmaster
Smazat
Chancellor Palpatine
Emperor/Sith Lord
Smazat
IDE nahraje click
//tr[3]/td[3]/a
Daleko vhodnější je click
//tr[td[text()='Chancellor tr[td[text()='Chancellor Palpatine']]/td[3]/a
Bodovaný úkol Bodovan
Selenium v praxi
Nainstalovat plugin Selenium IDE do prohlížeče prohlíže Firefox (verze 1.0 beta 2)
Nainstalovat plugin XPath Checker
https://addons.mozilla.org/en https://addons.mozilla.org/en-US/firefox/addon/1095
Stáhnout Tomcat a SWF Booking Faces
http://seleniumhq.org/
http://tomcat.apache.org/ http://www.springsource.org/webflow http://www.springsource.org/webflow-samples Rozbalit Tomcat do cesty bez mezer Zkopírovat swf-booking-faces.war faces.war do tomcat/webapps
Otestovat SWF Booking Faces
Firefox musí mít povolené cookies a JavaScript
XPath Checker
Scénář 1 Přihlásit ihlásit
se jako uživatel Najít hotel Prázdné
pole zobrazí všechny hotely Vybrat jeden konkrétní podle názvu
Zamluvit hotel Nastavit
všechny hodnoty
Odhlásit uživatele V průběhu vše ověřovat ěřovat
Scénář 2 Přihlásit ihlásit se jako uživatel Najít hotel
Zamluvit hotel
Prázdné pole zobrazí všechny hotely Vybrat jeden konkrétní podle názvu Nastavit všechny hodnoty
Druhá objednávka
Zamluvit tentýž hotel na jiné datum
Smazat první objednávku, podle data Odhlásit uživatele V průběhu vše ověřovat
Reference http://seleniumhq.org/ http://blog.novoj.net/2008/09/28/seleniumhttp://blog.novoj.net/2008/09/28/selenium testovani-gui/