Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Automated testing – Selenium #2             Peter Šimún             @petersimun
Zadefinujte si pravidlá!nedovoľte, aby sa porušovali  a váš život bude skvelý         jedine, že by nie
Pravidlo č.1: Shaolinských mníchov               Všetko neotestujete, aj              keď sa na hlavu postavíte
Pozor! Nasleduje kód!
Pravidlo č.2: Striktná a dôkladná architektúra                               Express your tests in the                    ...
Prihlásiť sa do synapsaPridať prázdnu stránkuPridať twitter komponent - @webelementPridať twitter komponent - @petersimunV...
loginSupport.login(new UsernamePasswordUser(Role.ADMIN));pageSupport.addBlankPage(newPage().randomize(seleniumSupport));Tw...
public class Twitter implements WebElement {    private String twitterAccount = "synapso";    private int twittsCounts = 5...
public class TwitterPage {    public By getTwitterSelector() {        return By.xpath("//div[contains(@class,twitterWidget...
public class UsernamePasswordLoginSupport implements LoginSupport{    @Override    public void login(UserData userData, La...
Nerobte pikoniny a nestestujte až keď horí
@petersimun         Seges s.r.o.Lombardíniho 20, 831 03 Bratislava   tel. +421 (0)2 206 333 69        office@seges.sk     ...
Próxima SlideShare
Cargando en…5
×

Selenium prezentácia pre Webelement

1.413 visualizaciones

Publicado el

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.

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Selenium prezentácia pre Webelement

  1. 1. Automated testing – Selenium #2 Peter Šimún @petersimun
  2. 2. Zadefinujte si pravidlá!nedovoľte, aby sa porušovali a váš život bude skvelý jedine, že by nie
  3. 3. Pravidlo č.1: Shaolinských mníchov Všetko neotestujete, aj keď sa na hlavu postavíte
  4. 4. Pozor! Nasleduje kód!
  5. 5. Pravidlo č.2: Striktná a dôkladná architektúra Express your tests in the language of the end-user of the app Ubiquitous Language Domain driven design
  6. 6. Prihlásiť sa do synapsaPridať prázdnu stránkuPridať twitter komponent - @webelementPridať twitter komponent - @petersimunVycentrovať twitter komponenty na stred stránkyPresunúť druhý twitter komponent (@petersimun) pred prvý twitter komponent(@webelement)Overiť výsledok na stránke – správne poradie twitter komponentov, pozícia nastránke Express your tests in the language of the end-user of the app
  7. 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. 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; } obyčajné POJO predstavuje vstupné podmienky testu mapuje sa a zobrazuje na UI
  9. 9. public class TwitterPage { public By getTwitterSelector() { return By.xpath("//div[contains(@class,twitterWidget) and contains(@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 niečo zmení na UI, zmenu treba pravdepodobne reflektovať na tomtomiesteAk nechcete skončiť v pekle, nepoužívajte selectory v testoch alebo v supporttriedach!!
  10. 10. public class UsernamePasswordLoginSupport implements LoginSupport{ @Override public void login(UserData userData, Language language) { } @Override public void login(UserData user) { } @Override public void logout() { } ...}Písaný v jazyku zrozumiteľnom pre ľudí ( developer ≠ človek )Úzko komunikuje so selenium a zaobaluje znovupoužiteľnú funkcionalitu dometód
  11. 11. Nerobte pikoniny a nestestujte až keď horí
  12. 12. @petersimun Seges s.r.o.Lombardíniho 20, 831 03 Bratislava tel. +421 (0)2 206 333 69 office@seges.sk www.seges.sk

×