začínáme testovat web pomocí selenium Školení pro začátečníky
DESCRIPTION
Začínáme testovat web pomocí Selenium Školení pro začátečníky. Co je Selenium IDE. Automatické testování webové aplikace jako černé skříňky Minimální konfigurace Firefox plugin Selenium IDE Viz. HelloWorld – stripes-shop http://selenium-ide.openqa.org/download.jsp. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/1.jpg)
špička v každém směru
IT3
Začínáme testovat web pomocí Selenium Školení pro začátečníky
![Page 2: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/2.jpg)
IT3
špička v každém směru
Co je Selenium IDE
Automatické testování Automatické testování webové webové aplikace aplikace jako černé skříňkyjako černé skříňky
Minimální konfiguraceMinimální konfigurace Firefox plugin Firefox plugin Selenium IDESelenium IDE
Viz. Viz. HelloWorld – stripes-shopHelloWorld – stripes-shop
http://selenium-ide.openqa.org/download.jsphttp://selenium-ide.openqa.org/download.jsp
![Page 3: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/3.jpg)
IT3
špička v každém směru
Pro koho je Selenium IDE?
Pro testeryPro testery Automatizace testování podle testovacích scénářůAutomatizace testování podle testovacích scénářů Testovací scénáře v jednoduché HTML podoběTestovací scénáře v jednoduché HTML podobě
Pro vývojářePro vývojáře Smoke testy buildovacího procesu (např. Ant skriptů)Smoke testy buildovacího procesu (např. Ant skriptů) Integrační testování jako součást nočních buildůIntegrační testování jako součást nočních buildů Testování Ajax částí aplikace a GUITestování Ajax částí aplikace a GUI
![Page 4: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/4.jpg)
IT3
špička v každém směru
Nativní formát testu
Jednoduché HTMLJednoduché HTML Srozumitelné i Srozumitelné i
pro nevývojářepro nevývojáře
<tr><tr>
<td>type</td><td>type</td>
<td>jusername</td><td>jusername</td>
<td>vjohn</td><td>vjohn</td>
</tr></tr>
<tr><tr>
<td>type</td><td>type</td>
<td>jpassword</td><td>jpassword</td>
<td>vjohn</td><td>vjohn</td>
</tr></tr>
<tr><tr>
<td>clickAndWait</td><td>clickAndWait</td>
<td>login</td><td>login</td>
<td></td><td></td>
</tr></tr>
![Page 5: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/5.jpg)
IT3
špička v každém směru
Testování více prohlížečů
Jeden test lze spustit protiJeden test lze spustit proti ExploreruExploreru FirefoxuFirefoxu
![Page 6: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/6.jpg)
IT3
špička v každém směru
Selenium command
Jeden řádek v testuJeden řádek v testu Instrukce pro selenium, co má s aplikací dělatInstrukce pro selenium, co má s aplikací dělat
1. buňka1. buňka CommandCommandNázev příkazu (např. type)Název příkazu (např. type)
2. buňka2. buňka Element selectorElement selectorUrčení elementu na stránce pro provedení Určení elementu na stránce pro provedení příkazupříkazu
3. buňka3. buňka Další argument pro Další argument pro příkazpříkaz
<tr><tr>
<td>type</td><td>type</td>
<td>jusername</td><td>jusername</td>
<td>vjohn</td><td>vjohn</td>
</tr></tr>
![Page 7: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/7.jpg)
IT3
špička v každém směru
Jak testovat commandy
V selenium IDE napište příkazV selenium IDE napište příkaz Spusťte příkazSpusťte příkaz
A) PoklepánímA) Poklepáním B) Pomocí klávesové zkratky XB) Pomocí klávesové zkratky X
Nápověda k příkazům v Selenium IDENápověda k příkazům v Selenium IDE V Selenium IDE obsahuje jednoduchou Code V Selenium IDE obsahuje jednoduchou Code
completioncompletion Karta Reference obsahuje nápověduKarta Reference obsahuje nápovědu
![Page 8: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/8.jpg)
IT3
špička v každém směru
Commands - typy
ActionsActions provádějí uživatelské akce v aplikaciprovádějí uživatelské akce v aplikaci typetype clickclick selectselect submitsubmit
Pozn.:Pozn.: Varianta andWait způsobí počkání na nahrání další Varianta andWait způsobí počkání na nahrání další stránky (např. clickAndWait)stránky (např. clickAndWait)
AssertionsAssertions ověřují stav aplikace očekáváníověřují stav aplikace očekávání assertTextassertText assertTitleassertTitle
AccessorsAccessors ukládají stav aplikace do proměnnéukládají stav aplikace do proměnné storeValuestoreValue storeEvalstoreEval storeAttributestoreAttribute
![Page 9: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/9.jpg)
IT3
špička v každém směru
Práce s formulářem
ttypeype napíše hodnotu do formulářového polenapíše hodnotu do formulářového poleSyntaxe:Syntaxe: typetype <locator><locator> <value><value>Např.:Např.: typetype namename Pavel JetenskýPavel Jetenský
submitsubmit odešle formulářodešle formulářSyntaxe:Syntaxe: submitsubmit <locator><locator>Např.:Např.: submitsubmit document.forms[0]document.forms[0]
sselectelect vyvybbereere hodnoty z rolovací nabídky hodnoty z rolovací nabídkySyntaxe:Syntaxe: select <locator> <option label>select <locator> <option label>Např.:Např.:select osobySelect Frantaselect osobySelect Franta
check/uncheckcheck/uncheckzaškrtne/odškrtne checkboxzaškrtne/odškrtne checkboxSyntaxe:Syntaxe: check <locator>check <locator>Např.:Např.: check check faktura.odberatel.sendNewsletterfaktura.odberatel.sendNewsletter
![Page 10: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/10.jpg)
IT3
špička v každém směru
Element locator
Určuje objekt v HTML stránce pro provedení příkazuUrčuje objekt v HTML stránce pro provedení příkazu
Více možností pro Více možností pro locatorTypelocatorType – identifier, id, name, dom, xpath, – identifier, id, name, dom, xpath, link, csslink, css
identifier=<hodnota>identifier=<hodnota>Najdi element podle @id, nenajdeš-li pak podle @nameNajdi element podle @id, nenajdeš-li pak podle @name
id=<hodnota>id=<hodnota> najdi element podle @idnajdi element podle @id name=<hodnota>name=<hodnota> najdi element podle @namenajdi element podle @name dom=<hodnota>dom=<hodnota> najdi element podle dom výrazunajdi element podle dom výrazu
dom=document.forms['myForm'].myDropdowndom=document.forms['myForm'].myDropdown xpath=<xpath>xpath=<xpath> najdi element podle XPATH výrazunajdi element podle XPATH výrazu
xpath=//table[@id='table1']//tr[4]/td[2] xpath=//table[@id='table1']//tr[4]/td[2] link=<text odkazu> link=<text odkazu> najdi odkaz (<a>) podle textunajdi odkaz (<a>) podle textu
linklink==Odhlásit seOdhlásit se
Syntaxe: Syntaxe: locatorTypelocatorType==argumentargument
![Page 11: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/11.jpg)
IT3
špička v každém směru
Jak testovat locatory
V selenium IDE napište příkazV selenium IDE napište příkaz Do druhého políčka příkazu napište element selectorDo druhého políčka příkazu napište element selector Klepněte na tlačítko u selectoru FindKlepněte na tlačítko u selectoru Find
![Page 12: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/12.jpg)
IT3
špička v každém směru
Locator – zjednodušená syntaxe Bez locatorTypeBez locatorType locatorType = IdentifierlocatorType = Identifier
type identifier=emailtype identifier=email [email protected]@deltax.cz
type email type email [email protected]@deltax.cz Locator začínající na Locator začínající na //// locatorType = XPathlocatorType = XPath
typetype xpath=//input[@id='e1'] xpath=//input[@id='e1'] [email protected] [email protected] typetype //input[@id='e1'] //input[@id='e1'] [email protected]@deltax.cz
Locator začínající na Locator začínající na document.document. locatorType = domlocatorType = dom
clickclick dom=document.images[56] dom=document.images[56]clickclick document.images[56] document.images[56]
![Page 13: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/13.jpg)
IT3
špička v každém směru
Kvízová otázka XPath
V aplikaci máme zobrazenou tuto tabulkuV aplikaci máme zobrazenou tuto tabulku
Potřebujeme klepnout na odkaz Smazat u uživatele Jan Potřebujeme klepnout na odkaz Smazat u uživatele Jan Hasič. Při nahrávání v Selenium IDE recorder nahrál Hasič. Při nahrávání v Selenium IDE recorder nahrál tento command:tento command: click //tr[3]/td[2]/aclick //tr[3]/td[2]/a
Jak nahradit XPath na odkaz Smazat, aby fungoval Jak nahradit XPath na odkaz Smazat, aby fungoval nezávisle na pořadí řádku s Janem Hasičem v tabulce (a nezávisle na pořadí řádku s Janem Hasičem v tabulce (a byl srozumitelnější, co se děje)?byl srozumitelnější, co se děje)?
Click //tr[td[text()='Jan Hasič']]/td[2]/aClick //tr[td[text()='Jan Hasič']]/td[2]/a
JménoJméno AkceAkce
Tom ŘidičTom Řidič SmazatSmazat
Jan HasičJan Hasič SmazatSmazat
Studenti mají přednost Studenti mají přednost
![Page 14: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/14.jpg)
IT3
špička v každém směru
Assertions commands
assertassertTextText Test na přítomnost textu ve stránceTest na přítomnost textu ve stránce assertValueassertValue Test na hodnotu ve formulářiTest na hodnotu ve formuláři assertTitleassertTitle Test na titulek stránky (podpora pro Test na titulek stránky (podpora pro
nahrání v recorderu)nahrání v recorderu) assertVisible, assertEditableassertVisible, assertEditable Test na často používané Test na často používané
DHTML vlastnosti elementůDHTML vlastnosti elementů
![Page 15: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/15.jpg)
IT3
špička v každém směru
Assertions varianty
assertassertXXXXXX Při nesplnění kontroly test selže a Při nesplnění kontroly test selže a nepokračujenepokračuje
verifyXXXverifyXXX Při nesplnění kontroly se chyba zaloguje, Při nesplnění kontroly se chyba zaloguje, ale test pokračujeale test pokračuje
assertNotXXX,verifyNotXXXassertNotXXX,verifyNotXXX Negovaná kontrolaNegovaná kontrola Stejné jako assertXXX, ale kontrola se vyhodnocuje negativně.Stejné jako assertXXX, ale kontrola se vyhodnocuje negativně. Např. assertNotValue email [email protected] – test selže, pokud Např. assertNotValue email [email protected] – test selže, pokud
@value elementu email obsahuje [email protected]@value elementu email obsahuje [email protected] assertVisibleassertVisible Kontrola viditelnosti prvku na Kontrola viditelnosti prvku na
stráncestránce assertEditableassertEditable Kontrola editovatelnosti prvku na stránceKontrola editovatelnosti prvku na stránce
![Page 16: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/16.jpg)
IT3
špička v každém směru
Možnosti spouštění testů
RučněRučně Okno firefox pluginu – jeden testOkno firefox pluginu – jeden test Pomocí testrunneru – více testů (testsuite)Pomocí testrunneru – více testů (testsuite)
![Page 17: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/17.jpg)
IT3
špička v každém směru
Kvízová otázka
Uvažujme, že máme sadu Uvažujme, že máme sadu 10ti Seleniových testů v 10ti Seleniových testů v HTML formátu, login HTML formátu, login sekvence se na začátku sekvence se na začátku každého testu opakujekaždého testu opakuje
Jak by šlo docílit re-use login Jak by šlo docílit re-use login sekvence v těchto testech?sekvence v těchto testech?
<tr><tr>
<td>type</td><td>type</td>
<td>jusername</td><td>jusername</td>
<td>vjohn</td><td>vjohn</td>
</tr></tr>
<tr><tr>
<td>type</td><td>type</td>
<td>jpassword</td><td>jpassword</td>
<td>vjohn</td><td>vjohn</td>
</tr></tr>
<tr><tr>
<td>clickAndWait</<td>clickAndWait</td>td>
<td>//<td>//input[@value="Prihlasit input[@value="Prihlasit se"]</td>se"]</td>
<td></td><td></td>
</tr></tr>
Možné řešení: Použijte Možné řešení: Použijte JSP kontejner pro testy a JSP kontejner pro testy a jsp:includejsp:include
<jsp:include <jsp:include page="include/login.jsp"/>page="include/login.jsp"/>
Studenti mají přednost Studenti mají přednost
![Page 18: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/18.jpg)
IT3
špička v každém směru
Seskupování testů
testsuite.html - HTML soubor, který linkuje více testůtestsuite.html - HTML soubor, který linkuje více testů<html><html> <head><head> <title>Testsuite Example</title><title>Testsuite Example</title> </head></head><body><body> <table cellpadding="1" cellspacing="1" border="1"><table cellpadding="1" cellspacing="1" border="1"> <tbody><tbody> <tr><tr> <td>Etar tests</td><td>Etar tests</td> </tr></tr> </tbody></tbody> <tr><td><a href="Login.html">Login</a></td></tr><tr><td><a href="Login.html">Login</a></td></tr> <tr><td><a href="NovySP.html">Nový SP</a></td></tr><tr><td><a href="NovySP.html">Nový SP</a></td></tr> </table></table></body></body></html></html>
![Page 19: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/19.jpg)
IT3
špička v každém směru
Praktický příklad (stripes-shop) Vytvoření testůVytvoření testů
Test “Přihlášení”Test “Přihlášení” Test přidání zboži do košíkuTest přidání zboži do košíku Test validace formulářeTest validace formuláře
Další ukázky – co by vás zajímalo?Další ukázky – co by vás zajímalo? Vytvoření testsuiteVytvoření testsuite
Spuštění testsuite z test runneruSpuštění testsuite z test runneru Spuštění testu z junitSpuštění testu z junit Re-use login sekvence pomocí jsp:includeRe-use login sekvence pomocí jsp:include Spuštění testu proti Internet ExplorerSpuštění testu proti Internet Explorer Best practices pro psaní snadno udržovatelných testůBest practices pro psaní snadno udržovatelných testů
![Page 20: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/20.jpg)
IT3
špička v každém směru
Odkazy
Selenium Selenium homepagehomepage Selenium IDESelenium IDE Selenium Selenium RemoteRemote ControlControl (used by jUnit sel. tests) (used by jUnit sel. tests)
Selenium-RC Selenium-RC andand ContinuousContinuous IntegrationIntegration Selenium testování GUI –přednáška o Seleniu, obsahující Selenium testování GUI –přednáška o Seleniu, obsahující
některá pokročilejší témata (např. best practices, spouštění některá pokročilejší témata (např. best practices, spouštění testů přes ANT nebo jUnit atp.)testů přes ANT nebo jUnit atp.)
![Page 21: Začínáme testovat web pomocí Selenium Školení pro začátečníky](https://reader034.vdocuments.pub/reader034/viewer/2022050908/56813c11550346895da58a04/html5/thumbnails/21.jpg)
IT3
špička v každém směru
Otázky nakonec
Nebojte se a ptejte se Nebojte se a ptejte se