SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
© 2015 Haeger Consulting Ralf Haeger
Webseiten mit

Selenium testen
16.11.2015 Andreas Monschau
Webmontag Bonn #wmbn
1
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
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
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
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]
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
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]
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)
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]
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
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!
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]
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]
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]
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
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
16.11.2015
Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
Andreas Monschau - IT Consultant
wmbn_selenium_monschau.
Selenium
Identifizierung von Webelementen
17
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
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=?
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
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]
16.11.2015
Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
Andreas Monschau - IT Consultant
wmbn_selenium_monschau.
Selenium WebDriver
22
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);
16.11.2015
Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
Andreas Monschau - IT Consultant
wmbn_selenium_monschau.
Selenium WebDriver
24
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());
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!
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);
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!
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();
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");
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!
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);
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
16.11.2015
Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
Andreas Monschau - IT Consultant
wmbn_selenium_monschau.
Selenium WebDriver - DEMO
DEMO
34
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
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
16.11.2015
Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
Andreas Monschau - IT Consultant
wmbn_selenium_monschau.
Selenium IDE - DEMO
DEMO
37
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]
16.11.2015
Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg
Andreas Monschau - IT Consultant
wmbn_selenium_monschau.
andreas@diemonschaus.de
amonschau@haeger-consulting.de
www.haeger-consulting.de
https://bitbucket.org/amonschau/
https://speakerdeck.com/andreasmonschau
Twitter: @andreasmonschau
Xing: Andreas Monschau
39
Vielen Dank!
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

Weitere ähnliche Inhalte

Ähnlich wie Webseiten mit Selenium testen

Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009
Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009
Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009Wolfgang Kraus
 
SEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai SpriestersbachSEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai SpriestersbachSEARCH ONE
 
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)NETWAYS
 
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)NETWAYS
 
Seo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersSeo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersJan Berens
 
Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)
Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)
Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)NETWAYS
 
Crawl-Budget-Booster für eine bessere Search Engine Experience
Crawl-Budget-Booster für eine bessere Search Engine ExperienceCrawl-Budget-Booster für eine bessere Search Engine Experience
Crawl-Budget-Booster für eine bessere Search Engine ExperienceAndré Goldmann
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererTobias Schlüter
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...Ekkard Schnedermann
 
Fix shit up - SEO Probleme und erfolgreiche Lösungen [Campixx 2014]
Fix shit up - SEO Probleme und  erfolgreiche Lösungen [Campixx 2014]Fix shit up - SEO Probleme und  erfolgreiche Lösungen [Campixx 2014]
Fix shit up - SEO Probleme und erfolgreiche Lösungen [Campixx 2014]Sebastian Weber
 
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014) Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014) NETWAYS
 
Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfCarolinaMatthies
 
Rails und Scrum in großen Projekten
Rails und Scrum in großen ProjektenRails und Scrum in großen Projekten
Rails und Scrum in großen ProjektenPhillip Oertel
 

Ähnlich wie Webseiten mit Selenium testen (14)

Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009
Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009
Collaboration - dann klappt’s auch mit dem ‘Nachbarn’ - mff 2009
 
SEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai SpriestersbachSEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
 
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
 
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
 
Seo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for BeginnersSeo Campixx 2015 - Technical SEO for Beginners
Seo Campixx 2015 - Technical SEO for Beginners
 
Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)
Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)
Icinga Web 2: Modernes Monitoring Interface (Webinar vom 03.03.2015)
 
Crawl-Budget-Booster für eine bessere Search Engine Experience
Crawl-Budget-Booster für eine bessere Search Engine ExperienceCrawl-Budget-Booster für eine bessere Search Engine Experience
Crawl-Budget-Booster für eine bessere Search Engine Experience
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für Programmierer
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
 
Fix shit up - SEO Probleme und erfolgreiche Lösungen [Campixx 2014]
Fix shit up - SEO Probleme und  erfolgreiche Lösungen [Campixx 2014]Fix shit up - SEO Probleme und  erfolgreiche Lösungen [Campixx 2014]
Fix shit up - SEO Probleme und erfolgreiche Lösungen [Campixx 2014]
 
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014) Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
 
Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdf
 
Rails und Scrum in großen Projekten
Rails und Scrum in großen ProjektenRails und Scrum in großen Projekten
Rails und Scrum in großen Projekten
 

Webseiten mit Selenium testen

  • 1. © 2015 Haeger Consulting Ralf Haeger Webseiten mit
 Selenium testen 16.11.2015 Andreas Monschau Webmontag Bonn #wmbn 1
  • 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
  • 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
  • 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
  • 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]
  • 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
  • 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]
  • 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)
  • 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]
  • 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
  • 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!
  • 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]
  • 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]
  • 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]
  • 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
  • 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
  • 17. 16.11.2015 Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant wmbn_selenium_monschau. Selenium Identifizierung von Webelementen 17
  • 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
  • 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=?
  • 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
  • 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]
  • 22. 16.11.2015 Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant wmbn_selenium_monschau. Selenium WebDriver 22
  • 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);
  • 24. 16.11.2015 Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant wmbn_selenium_monschau. Selenium WebDriver 24
  • 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());
  • 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!
  • 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);
  • 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!
  • 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();
  • 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");
  • 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!
  • 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);
  • 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
  • 34. 16.11.2015 Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant wmbn_selenium_monschau. Selenium WebDriver - DEMO DEMO 34
  • 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
  • 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
  • 37. 16.11.2015 Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant wmbn_selenium_monschau. Selenium IDE - DEMO DEMO 37
  • 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]
  • 39. 16.11.2015 Haeger Consulting • Nachtigallenweg 1 • 53343 Wachtberg Andreas Monschau - IT Consultant wmbn_selenium_monschau. andreas@diemonschaus.de amonschau@haeger-consulting.de www.haeger-consulting.de https://bitbucket.org/amonschau/ https://speakerdeck.com/andreasmonschau Twitter: @andreasmonschau Xing: Andreas Monschau 39 Vielen Dank!
  • 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