1 / 20

Selenium testování GUI

Selenium testování GUI. Co je Selenium IDE. Automatické testování aplikace jako černé skříňky Minimální konfigurace Firefox plugin Selenium IDE Viz. tutorial video Náš vlastní google search. Pro koho je Selenium IDE?. Pro testery Automatizace testování podle testovacích scénářů

eara
Download Presentation

Selenium testování GUI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Selenium testování GUI

  2. Co je Selenium IDE • Automatické testování aplikace jako černé skříňky • Minimální konfigurace • Firefox plugin Selenium IDE • Viz. tutorial video • Náš vlastní google search

  3. Pro koho je Selenium IDE? • Pro testery • Automatizace testování podle testovacích scénářů • Testovací scénáře v jednoduché HTML podobě • Pro vývojáře • Smoke testy buildovacího procesu (např. Ant skriptů) • Integrační testování jako součást nočních buildů • Testování Ajax částí aplikace a GUI

  4. Nativní formát testu • Jednoduché HTML • Srozumitelné i pro nevývojáře

  5. Testování více prohlížečů • Jeden test lze spustit proti • Exploreru • Firefoxu

  6. Základní commandy • Často používané příkazy • type • click • save • link=Jdi na seznam • clickAndWait – klepne a počká, než se nahraje stránka • select – výběr hodnoty z rolovací nabídky <select> • label=Hasič • assertTextPresent – test skončí, pokud selže • verifyTextPresent – test pokračuje dál, i když selže • Další commandy i s nápovědou najdete v Selenium IDE* okně • Formát commandů: JMENO SELECTOR [HODNOTA] • Tlačítko k nezaplacení - Find

  7. Možnosti spouštění testů • Ručně • Okno firefox pluginu – jeden test • Pomocí testrunneru – více testů (testsuite) • Automaticky • Pomocí ANTu • Pomocí jUnit • Ostatní jazyky • Ruby • Python • PHP • …

  8. Best practices • Toto je asi nejdůležitější část prezentace! • Provádějte reuse částí testů • V jUnit Java metoda, např. public void login() • V HTML nelze (jak na to viz. další snímek) • Raději vytvářejte hodně malých testů, než málo velkých a složitých testů • Testy by měli testovat co nejmenší uživatelský scénář • Je snazší vypátrat chybu, pokud mi 4 testy z 50ti existujících selžou, než pokud mi selže 1 test ze 2 existujících. • Používejte XPath s uživatelským textem jako selectory • Špatně: clickAndWait //table[2]/tr[1]/td[4] • Dobře: clickAndWait //td[text() = 'Založit Nový SP'] Výsledkem jsou samopopisné, dobře udržovatelné testy

  9. Kvízová otázka • Uvažujme, že máme sadu 10ti Seleniových testů v HTML formátu, login sekvence se na začátku každého testu opakuje • Jak by šlo docílit re-use login sekvence v těchto testech?

  10. Seskupování testů • testsuite.html - HTML soubor, který linkuje více testů <html> <head> <title>Testsuite Example</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <tbody> <tr> <td>Etar tests</td> </tr> </tbody> <tr><td><a href="Login.html">Login</a></td></tr> <tr><td><a href="NovySP.html">Nový SP</a></td></tr> </table> </body> </html>

  11. Úskalí 1 – formuláře • Formuláře – Recorder nenahrává odeslání formuláře stisknutím klávesy <Enter> • Použijte submitForm(formId) command

  12. Úskalí 2 – práce s iframes • Práce s iframes - Recorder nenahrává selectFrame command • Nutné ručně přidat • selectFrame(frameId) • Operace v iframe • selectFrame(relative=top)

  13. Úskalí 3 – timeout problém • ClickAndWait spadne na timeout • Může se stát, pokud odezva aplikace je velmi rychlá • Stejný problém i s ostatním XxxAndWait commandy • Použijte waitForElementPresent

  14. Kvízová otázka XPath • V aplikaci máme zobrazenou tuto tabulku • Potřebujeme klepnout na odkaz Smazat u uživatele Jan Hasič. Při nahrávání v Selenium IDE recorder nahrál tento command: • click //tr[3]/td[2]/a • Jak nahradit XPath na odkaz Smazat, aby fungoval nezávisle na pořadí řádku s Janem Hasičem v tabulce (a byl srozumitelnější, co se děje)? • Click //tr[td[text()='Jan Hasič']]/td[2]/a

  15. Úskalí 4 – mizení testrunneru • Aplikace může následujícím Javascriptem zrušit Selenium testrunner window parent.window.location = 'http://www.seznam.cz'; • Řešení – použijte multiWindow = true

  16. Další úskalí • Při použití https a neplatném certifikátu se test zastaví na varovném hlášení prohlížeče • Buď registrovat certifikát u CA nebo pro testy spustit aplikaci na http • Pokud aplikace javascriptem otevře popup okno s názvem _new, recorder nenahraje odpovídající selectWindow _new command • Buď v aplikaci používejte vlastní jména (např. mywindow) nebo doplňte do testů po nahrání selectWindow _new command • Pokud ve firefox použijete zapamatovanou dříve napsanou hodnotu formuláře (form input field history), recorder to nezaznamená • Při nahrávání testu vždy hodnotu ručně pište (nepoužívejte form history)

  17. Jak vnořovat testsuite? • Z jedné testsuite nelze zavolat jinou testsuite • Řešení - TestSuiteGenerator • Z adresářové struktury testů automaticky vytvoří testsuite.html • Parametrem volání je root složka s testy

  18. Ukázka z praxe • Testy pro přerušení servisního požadavku (projekt etar) • Bez účasti dodavatele • S účastí dodavatele

  19. Odkazy • Selenium homepage • Selenium IDE • Selenium Remote Control (used by jUnit sel. tests) • Selenium-RC and Continuous Integration • Ajax testing with Selenium using waitForCondition

  20. Otázky nakonec • Nebojte se a ptejte se 

More Related