Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Webseiten mit Selenium Testen

Webseiten mit Selenium Testen

Testen von Webanwendungen kurz und knackig – wie man seine Tests mit Selenium automatisiert, am Beispiel der Firefox Extension Selenium IDE sowie mit Selenium Webdriver aus Java heraus.

Vortrag vom Webmontag Bonn am 16.11.2015

Andreas Monschau

November 16, 2015
Tweet

More Decks by Andreas Monschau

Other Decks in Programming

Transcript

  1. © 2015 Haeger Consulting Ralf Haeger
    Webseiten mit

    Selenium testen
    16.11.2015 Andreas Monschau
    Webmontag Bonn #wmbn
    1

    View Slide

  2. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Andreas Monschau
    Berater bei Haeger Consulting
    Java-Softwareentwicklung
    Testmanagement (ISTQB)
    Testautomatisierung -> Selenium!
    2
    @andreasmonschau

    View Slide

  3. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium
    „Selenium automates Browsers“[1]
    3
    [a1]
    [a2] [a3] [a4]
    Selenium WebDriver
    (& Selenium Grid)
    Selenium IDE
    Apache License, Version 2.0

    View Slide

  4. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Umfeld
    4
    (Software)Test
    Automatisierter Test
    Automatisierter Test von

    Weboberflächen

    View Slide

  5. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Softwaretest
    5
    Softwaretest umfasst zwei Aspekte:
    Fehlerfindung: Finde möglichst viele Fehler, bevor der
    Kunde sie findet
    Qualitätsnachweis: Weise nach, dass sich die Software
    konform zu den Anforderungen verhält.
    [2]

    View Slide

  6. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Softwaretest
    6
    Oder:
    Vergleiche erwartete mit tatsächlichen Ergebnissen
    Erwartet: Irgendwas wird
    gespeichert
    Nicht erwartet: Programm stürzt ab

    View Slide

  7. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Automatisierte
    Testdurchführung
    7
    (Testautomatisierung ist) Die Verwendung einer Software
    (…) um die Ausführung von Tests zu steuern, tatsächliche
    mit erwarteten Ergebnissen zu vergleichen, die definierten
    Vorbedingungen herzustellen sowie weitere
    Testüberwachungs- und Berichtsfunktionen durchzuführen.
    [3]

    View Slide

  8. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Anforderungen
    8
    Anforderung an
    Testautomatisierung
    Einfach
    Erweiter-
    bar
    Wieder-
    verwendbar
    (Regression)

    View Slide

  9. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Anforderungen
    9
    Anforderung an
    automatisierten Test
    von Weboberflächen
    Einfach
    Erweiter-
    bar
    Wieder-
    verwendbar
    (Regression)
    Unterstützung
    verschiedener
    Umgebungen
    Unterstützung
    ansynchronen
    Verhaltens des
    Testobjekts [4]
    „Selenium automates Browsers“[1]

    View Slide

  10. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Was macht nun Selenium?
    10
    [a2] [a3] [a4]
    Selenium WebDriver Selenium IDE

    View Slide

  11. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Was macht nun Selenium?
    11
    [a2] [a3] [a4]
    Selenium WebDriver Selenium IDE
    Webseiten testen!

    View Slide

  12. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Testobjekt
    Testobjekt - https://github.com/vaadin/addressbook
    12
    [a5]

    View Slide

  13. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Testobjekt
    Testobjekt - https://github.com/vaadin/addressbook
    13
    [a5]

    View Slide

  14. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Testobjekt
    Testobjekt - https://github.com/vaadin/addressbook
    Prinzipielle Probleme?
    14
    [a5]

    View Slide

  15. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium
    Prinzipielle Problematik:
    • Ein Webelement, mit dem interagiert werden soll, muss
    eindeutig identifizierbar sein
    • Wie gehen wir mit dem asynchronen Verhalten des
    Testobjekts um?
    15

    View Slide

  16. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium
    Prinzipielle Problematik:
    • Ein Webelement, mit dem interagiert werden soll, muss
    eindeutig identifizierbar sein
    16

    View Slide

  17. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium
    Identifizierung von Webelementen
    17

    View Slide

  18. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Was macht nun Selenium?
    18
    [a2] [a3] [a4]
    Selenium WebDriver Selenium IDE

    View Slide

  19. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver


    Selenium WebDriver
    19
    Leichte
    Erlernbarkeit.
    Verfügbar für
    verschiedene
    Sprachen
    Unterstützung
    gängiger Browser
    [4]
    [a2]
    Eigenständige
    Browserinstanzen
    1+1=?

    View Slide

  20. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver - Workflow
    20
    Beispiel für einen automatisierten

    Selenium WebDriver-Test

    View Slide

  21. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Testobjekt
    Testobjekt - https://github.com/vaadin/addressbook
    21
    [a5]

    View Slide

  22. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    22

    View Slide

  23. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    23
    WebDriver driver;
    driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

    View Slide

  24. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    24

    View Slide

  25. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    25
    driver.get("http://localhost:8080");
    Assert.assertEquals("Addressbook",

    driver.getTitle());

    View Slide

  26. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    26
    1, 2, 3, 4, 5
    OK!

    View Slide

  27. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    27
    1, 2, 3, 4, 5
    OK!
    count = driver.findElements(

    By.xpath(„//div[@id=‚addressTable‘]//table[1]//tbody/tr"))
    .size();
    Assert.assertEquals(5, count);

    View Slide

  28. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    28
    1, 2, 3, 4, 5
    OK!

    View Slide

  29. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    29
    1, 2, 3, 4, 5
    OK!
    driver.findElement(By.id("newContact")).click();

    View Slide

  30. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    30
    1, 2, 3, 4, 5
    OK!
    driver.findElement(By.id("firstName")).sendKeys("Andreas");
    driver.findElement(By.id("lastName")).sendKeys("Monschau");

    View Slide

  31. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    31
    1, 2, 3, 4, 5
    OK!
    1, 2, 3, 4, 5, 6
    OK!

    View Slide

  32. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver
    32
    1, 2, 3, 4, 5
    OK!
    1, 2, 3, 4, 5, 6
    OK!
    count = driver.findElements(

    By.xpath(„//div[@id=‚addressTable‘]//table[1]//tbody/tr"))
    .size();
    Assert.assertEquals(6, count);

    View Slide

  33. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver - Source
    33
    https://bitbucket.org/amonschau/seleniumexample

    View Slide

  34. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium WebDriver - DEMO
    DEMO
    34

    View Slide

  35. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Was macht nun Selenium?
    35
    [a2] [a3] [a4]
    Selenium WebDriver Selenium IDE

    View Slide

  36. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium IDE
    • Einfaches und schnelles
    Capture & Replay
    • Ermöglicht Debugging
    • Mögliche Anwendungsfälle:
    • Reproduktion von
    Fehlerwirkungen
    • Prototyping von Testfällen,
    die später mit Selenium
    WebDriver umgesetzt
    werden
    36

    View Slide

  37. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium IDE - DEMO
    DEMO
    37

    View Slide

  38. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Selenium - Fazit
    Selenium WebDriver ist
    • leicht erlernbar
    • vielseitig einsetzbar
    • bietet schnell Ergebnisse
    • Einarbeitungszeit: ca. 4-5 PT
    • https://bitbucket.org/amonschau/seleniumexample
    Selenium IDE ist
    • geeignet, um Verhalten schnell Reproduzierbar zu machen
    • im Vergleich zu Selenium WebDriver eingeschränkt
    • Einarbeitungszeit: ca. 1-1,5 PT


    38
    [a2] [a3] [a4]

    View Slide

  39. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    [email protected]
    [email protected]
    www.haeger-consulting.de
    https://bitbucket.org/amonschau/
    https://speakerdeck.com/andreasmonschau
    Twitter: @andreasmonschau
    Xing: Andreas Monschau
    39
    Vielen Dank!

    View Slide

  40. 16.11.2015
    Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
    Andreas Monschau - IT Consultant
    wmbn_selenium_monschau.
    Backup: Quellen
    [1]http://docs.seleniumhq.org/
    [2]“Systematisches Testen von Software - Ein Einstieg“, Spillner, 2008, d.punkt-Verlag
    [3]http://glossar.german-testing-board.info/
    [4]„Automatisiertes Testen von Weboberflächen“, A. Monschau, Java Magazin 11.2015, S&S Media
    [a1]http://docs.seleniumhq.org/images/big-logo.png
    [a2]http://docs.seleniumhq.org/images/selenium-logo.png
    [a3]http://docs.seleniumhq.org/images/selenium-grid-logo.png
    [a4]http://docs.seleniumhq.org/images/selenium-ide-logo.png
    [a5]https://vaadin.com/documents/10187/10609024/logo500/f2860b46-ab5b-4261-87f3-ada23dbc0d16?
    t=1437653387470
    40

    View Slide