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

Webseiten mit Selenium testen

Embed Size (px)

Citation preview

Page 1: Webseiten mit Selenium testen

© 2015 Haeger Consulting Ralf Haeger

Webseiten mitSelenium testen

16.11.2015 Andreas Monschau Webmontag Bonn #wmbn

1

Page 2: Webseiten mit Selenium testen

16.11.2015Haeger 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

Page 3: Webseiten mit Selenium testen

16.11.2015Haeger 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

Page 4: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Umfeld

4

(Software)Test

Automatisierter Test

Automatisierter Test vonWeboberflächen

Page 5: Webseiten mit Selenium testen

16.11.2015Haeger 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]

Page 6: Webseiten mit Selenium testen

16.11.2015Haeger 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

Page 7: Webseiten mit Selenium testen

16.11.2015Haeger 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]

Page 8: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Anforderungen

8

Anforderung an Testautomatisierung

Einfach

Erweiter-bar

Wieder-verwendbar (Regression)

Page 9: Webseiten mit Selenium testen

16.11.2015Haeger 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]

Page 10: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Was macht nun Selenium?

10

[a2] [a3] [a4]

Selenium WebDriver Selenium IDE

Page 11: Webseiten mit Selenium testen

16.11.2015Haeger 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!

Page 12: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Testobjekt

Testobjekt - https://github.com/vaadin/addressbook

12

[a5]

Page 13: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Testobjekt

Testobjekt - https://github.com/vaadin/addressbook

13

[a5]

Page 14: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Testobjekt

Testobjekt - https://github.com/vaadin/addressbook

Prinzipielle Probleme?

14

[a5]

Page 15: Webseiten mit Selenium testen

16.11.2015Haeger 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

Page 16: Webseiten mit Selenium testen

16.11.2015Haeger 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

Page 17: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium

Identifizierung von Webelementen

17

Page 18: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Was macht nun Selenium?

18

[a2] [a3] [a4]

Selenium WebDriver Selenium IDE

Page 19: Webseiten mit Selenium testen

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

Page 20: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver - Workflow

20

Beispiel für einen automatisiertenSelenium WebDriver-Test

Page 21: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Testobjekt

Testobjekt - https://github.com/vaadin/addressbook

21

[a5]

Page 22: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver

22

Page 23: Webseiten mit Selenium testen

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

Page 24: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver

24

Page 25: Webseiten mit Selenium testen

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

Page 26: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver

26

1, 2, 3, 4, 5 OK!

Page 27: Webseiten mit Selenium testen

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

Page 28: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver

28

1, 2, 3, 4, 5 OK!

Page 29: Webseiten mit Selenium testen

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

Page 30: Webseiten mit Selenium testen

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

Page 31: Webseiten mit Selenium testen

16.11.2015Haeger 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!

Page 32: Webseiten mit Selenium testen

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

Page 33: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver - Source

33

https://bitbucket.org/amonschau/seleniumexample

Page 34: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium WebDriver - DEMO

DEMO

34

Page 35: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Was macht nun Selenium?

35

[a2] [a3] [a4]

Selenium WebDriver Selenium IDE

Page 36: Webseiten mit Selenium testen

16.11.2015Haeger 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

Page 37: Webseiten mit Selenium testen

16.11.2015Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant

wmbn_selenium_monschau.

Selenium IDE - DEMO

DEMO

37

Page 38: Webseiten mit Selenium testen

16.11.2015Haeger 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]

Page 39: Webseiten mit Selenium testen

16.11.2015Haeger 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!

Page 40: Webseiten mit Selenium testen

16.11.2015Haeger 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