selenium prezentácia pre webelement

Download Selenium prezentácia pre Webelement

If you can't read please download the document

Upload: petersimun

Post on 23-Jun-2015

1.147 views

Category:

Technology


4 download

DESCRIPTION

Prečo je písanie dlhodobo udržiavateľných testov dôležitejšie ako písanie udržiavateľného kódu? A ako vlastne na to? Prezentácia zľahka nadväzuje na predchádzájúcu prednášku (http://www.slideshare.net/petersimun/presentation-11002440) a popisuje odporúčané postupy a praktické ukážky toho, ako automatizovane testujeme interaktívne webové aplikácie, aké neštastia nás pritom postihli a ako sme z toho vykľučkovali.

TRANSCRIPT

  • 1. Automated testing Selenium #2 Peter imn @petersimun

2. Zadefinujte si pravidl!nedovote, aby sa poruovalia v ivot bude skvel jedine, e by nie 3. Pravidlo .1: Shaolinskch mnchov Vetko neotestujete, ajke sa na hlavu postavte 4. Pozor! Nasleduje kd! 5. Pravidlo .2: Striktn a dkladn architektra Express your tests in the language of the end-user of the app Ubiquitous Language Domain driven design 6. Prihlsi sa do synapsaPrida przdnu strnkuPrida twitter komponent - @webelementPrida twitter komponent - @petersimunVycentrova twitter komponenty na stred strnkyPresun druh twitter komponent (@petersimun) pred prv twitter komponent(@webelement)Overi vsledok na strnke sprvne poradie twitter komponentov, pozcia nastrnke Express your tests in thelanguage of the end-user of the app 7. loginSupport.login(new UsernamePasswordUser(Role.ADMIN));pageSupport.addBlankPage(newPage().randomize(seleniumSupport));Twitter twitter_ps = new Twitter("petersimun");Twitter twitter_we = new Twitter("webelement");toolbarSupport.clickAndWait(Module.COMPONENT);twitterSupport.createTwitter (twitter_we);twitterSupport.centerTwitter(twitter_we);twitterSupport.createTwitter (twitter_ps);twitterSupport.centerTwitter(twitter_ps);twitterSupport.moveTwitterToPosition(twitter_we, newPosition(0, 100)); 8. public class Twitter implements WebElement {private String twitterAccount = "synapso";private int twittsCounts = 5;public Twitter (String twitterAccount) {this.twitterAccount = twitterAccount;}public String getTwitterAccount() {return twitterAccount;}public WebElement getTwitterElement() {return twitterElement;} obyajn POJO predstavuje vstupn podmienky testu mapuje sa a zobrazuje na UI 9. public class TwitterPage {public By getTwitterSelector() {return By.xpath("//div[contains(@class,twitterWidget) andcontains(@class,floatClear)]//ul");}public By getTweetSelector(String source) {return By.xpath("//div[contains(@class,twitterWidget floatClear) and contains(@source," + source+ ")]//ul//li[position() = 1]");}public By getTwitterInputSelector() {return By.xpath("//div[contains(@class,acris-metal- dialog)]//input[contains(@class,gwt-Text)]");}}reprezentuje UI komponenty pomocou selectorovak sa nieo zmen na UI, zmenu treba pravdepodobne reflektova na tomtomiesteAk nechcete skoni v pekle, nepouvajte selectory v testoch alebo v supporttriedach!! 10. public class UsernamePasswordLoginSupport implements LoginSupport{@Overridepublic void login(UserData userData, Language language) {}@Overridepublic void login(UserData user) {}@Overridepublic void logout() {}...}Psan v jazyku zrozumitenom pre ud ( developer lovek )zko komunikuje so selenium a zaobaluje znovupouiten funkcionalitu dometd 11. Nerobte pikoniny a nestestujte a ke hor 12. @petersimun Seges s.r.o.Lombardniho 20, 831 03 Bratislava tel. +421 (0)2 206 333 [email protected] www.seges.sk