Slide 1

Slide 1 text

© 2015 Haeger Consulting Ralf Haeger Webseiten mit
 Selenium testen 16.11.2015 Andreas Monschau Webmontag Bonn #wmbn 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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]

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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]

Slide 8

Slide 8 text

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)

Slide 9

Slide 9 text

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]

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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!

Slide 12

Slide 12 text

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]

Slide 13

Slide 13 text

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]

Slide 14

Slide 14 text

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]

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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=?

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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]

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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);

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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());

Slide 26

Slide 26 text

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!

Slide 27

Slide 27 text

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);

Slide 28

Slide 28 text

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!

Slide 29

Slide 29 text

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();

Slide 30

Slide 30 text

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");

Slide 31

Slide 31 text

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!

Slide 32

Slide 32 text

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);

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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]

Slide 39

Slide 39 text

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!

Slide 40

Slide 40 text

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