Webanwendungen mit Selenium testen - alt.java-forum ... fileeinfaches, aber mächtiges Framework...

Post on 24-Oct-2019

1 views 1 download

transcript

06.07.2007 Testen von Weboberflächen mit Selenium 1

Giftige Akzeptanztests?

Webanwendungen mit Selenium testen

Björn Eilers

04.07.2007

06.07.2007 Testen von Weboberflächen mit Selenium 2

viadee Unternehmensberatung GmbH

Gründung 1994

Firmenstandorte Münster und Köln (seit Mai 2007)

Über 70 Mitarbeiter (Informatiker, Mathematiker, Betriebswirtschaftler,…)

ca. 7,7 Mio. EUR Umsatz im Jahr 2006

qualitatives, kontrolliertes Wachstum

Durchgängige Beratung von Konzeption über Entwicklung bis zu Schulungen sowie Projektmanagement

Kunden der Branchen Handel, Banken, Versicherungen, Logistik, Kommunikation, Energie und IT

06.07.2007 Testen von Weboberflächen mit Selenium 3

Agenda

Testen von Weboberflächen

Was ist Selenium

Selenium Core

Selenium RC

Selenium IDE

Fazit

06.07.2007 Testen von Weboberflächen mit Selenium 4

Testen von Weboberflächen

Testen ist aufwändig und bindet wertvolle Projektzeit und –kosten

Manuelles Testen nicht ideal:

Hohe Fehleranfälligkeit

Zeitaufwändig, Personenbedarf

Wachsende Komplexität bei Regressiontests

Oberflächentests stellen hohe Anforderungen an Testsoftware:

Unterstützung verschiedener Plattformen (Browser / Betriebssysteme, insb. bei Projekten mit großem Anwenderkreis)

Dynamische Aspekte (AJAX, JavaScript, DHTML)

06.07.2007 Testen von Weboberflächen mit Selenium 5

Testen von Weboberflächen

Vielzahl von Testtools am Markt (httpUnit, jWebUnit, SilkTest, Rational Robot, …), aber viele Einschränkungen

Beschränkung auf wenige Plattformen (z. B. Windows/Internet Explorer)

Z. T. nur Unterstützung einfacher Grundfunktionalitäten

Alternativ hohe Lernkurve

Nur für IT-Professionals, dadurch keine Integration der Fachabteilung in Testdesign und Testfallerstellung

Open Source: Akzeptanzprobleme

Closed-Source: hohe Lizenzkosten

06.07.2007 Testen von Weboberflächen mit Selenium 6

Testen von Weboberflächen

Notwendigkeit

einfaches, aber mächtiges Framework

Schnelle Erstellung von Oberflächentests

Einfache Integration der Fachabteilung möglich

SELENIUM

06.07.2007 Testen von Weboberflächen mit Selenium 7

Agenda

Testen von Weboberflächen

Was ist Selenium

Selenium Core

Selenium RC

Selenium IDE

Fazit

06.07.2007 Testen von Weboberflächen mit Selenium 8

Was ist Selenium

Framework und Tools zur Erstellung und Durchführung von automatisierten Tests von Weboberflächen

Download und Dokumentation: www.openqa.org

06.07.2007 Testen von Weboberflächen mit Selenium 9

Was ist Selenium

Drei Komponenten

Selenium Core:Im Browser laufendes JavaScript-Framework zur Ausführung von Oberflächentests direkt im Browser

Selenium IDE:IDE für Testerstellung und Durchführung, die als Firefox-Addonbereitgestellt wird

Selenium RC:Java-Server und APIs für diverse Programmier- und Skriptsprachen, um Browser zu kontrollieren und Selenium-Testsdarin auszuführen

06.07.2007 Testen von Weboberflächen mit Selenium 10

Agenda

Testen von Weboberflächen

Was ist Selenium

Selenium Core

Selenium RC

Selenium IDE

Fazit

06.07.2007 Testen von Weboberflächen mit Selenium 11

Selenium Core

JavaScript-Framework, das mithilfe von IFrames und DOM Testfälle direkt im Browser ausführt.

Testaufbau nach FIT-Prinzip: Testsuiten und Testfälle in Tabellenform abgelegt

Testsuiten:

einspaltige HTML-Tabellen

Pro Zelle Link auf HTML-Datei mit Testfall oder Kommentar

Testfälle:

Dreispaltige HTML-Tabellen

Enthält Selenese-Anweisungen und Kommentare

06.07.2007 Testen von Weboberflächen mit Selenium 12

Selenium Core

Selenese-Anweisungen

Drei Klassen: Actions, Accessors und Assertions

Actions: Verändern den Zustand der Anwendung unter Test [AUT]

Z. B. Öffnen von Seiten, Klicken von Links

Accessors: Zustand der AUT untersuchen und Ergebnis in Variablen sichern

Z. B. Werte aus Tabellen auslesen

Assertions: Prüfen, ob Zustand der AUT dem erwarteten Verhalten entspricht

Z. B. prüfen, ob eine Seite einen bestimmten Titel hat

06.07.2007 Testen von Weboberflächen mit Selenium 13

Selenium Core

Best Practices

Test-First Programming:

Fachabteilung erstellt Testfälle aufgrund von ApplicationDesigns

Entwickler nutzen Testfälle als weitere Grundlage für Entwicklung

� Testfälle als Anforderungsspezifikation / „Vertrag“ zwischen Fachabteilung und Entwicklung

Automatische Regressionstests:

Nutzung der Testfälle zur Verifikation von Codeänderungen

06.07.2007 Testen von Weboberflächen mit Selenium 14

Selenium Core

Probleme

Selenium Core gemeinsam mit AUT auf Server deployen

XSS-Problematik:

Es kann nicht über Domain-Grenze getesten werden

Wechsel von unsicheren auf sichere Bereiche und umgekehrt gilt als Domainwechsel

Einige JavaScript-Events nicht unterstützt

Z. B. Dialogöffnung in onLoad()-Event

File-Upload nur in Firefox möglich

Keine Verschachtelung von Testsuiten

06.07.2007 Testen von Weboberflächen mit Selenium 15

Selenium Core

Demonstration

TestsuiteTimesheet-Anwendung Selenium-Testrunner

06.07.2007 Testen von Weboberflächen mit Selenium 16

Agenda

Testen von Weboberflächen

Was ist Selenium

Selenium Core

Selenium RC

Selenium IDE

Fazit

06.07.2007 Testen von Weboberflächen mit Selenium 17

Selenium RC

Erstellen von automatisierten Tests aus beliebigen Programmiersprachen gegen beliebige Webseiten

Middleware: Selenium Server

Java-Anwendung

kommuniziert mit Selenium Core

Kontrolliert unterstützte Browser Firefox, Internet Explorer, Opera, Safari, Camino, SeaMonkey

Fungiert als Proxy, um XSS-Problematik zu lösen

Bindungen für Java, .net, PHP, Perl, Ruby mitgeliefert

Eigene Bindungen möglich: HTTP-GET/POST-Request an SeleniumServer

06.07.2007 Testen von Weboberflächen mit Selenium 18

Selenium RC

Ermöglicht Einsatz in Unit-Tests

Regressionstest-Automatisierung

Einsatz in Continuous Integration-Tools möglich

06.07.2007 Testen von Weboberflächen mit Selenium 19

Selenium RC

jUnit-TestS/RC-

Wrapper Selenium Server

Browser

1. HTTP-Anfrage

2. Browser starten und als Proxy anmelden

3. Nächste Testanweisung

4. Anweisung über Proxy gesendet.

5. Anfrage weitergereicht

AUT

06.07.2007 Testen von Weboberflächen mit Selenium 20

Selenium RC

Demonstration

JUnit-TestsuiteSelenium-Server starten JUnit-Testlauf

06.07.2007 Testen von Weboberflächen mit Selenium 21

Agenda

Testen von Weboberflächen

Was ist Selenium

Selenium Core

Selenium RC

Selenium IDE

Fazit

06.07.2007 Testen von Weboberflächen mit Selenium 22

Selenium IDE

Firefox-Addon zum Aufnehmen, Durchführen und Debuggen von Tests

Schnelle Testfallerstellung per „Durchklicken“ der AUT und Anlegen von Assertions über kontextsensitive Menüs direkt im Browser

Testnachbereitung in IDE möglich (und auch notwendig)

Keine XSS-Problematik, da Addon in speziellem Firefox-Namensraum(chrome://)

Tests können als HTML gesichert/geladen oder in die von SeleniumRC unterstützten Sprachen exportiert werden

Ausführen von in IDE aufgenommenen Tests auch in anderen Browsern möglich

06.07.2007 Testen von Weboberflächen mit Selenium 23

Selenium IDE

Demonstration

Timesheet-Anwendung

06.07.2007 Testen von Weboberflächen mit Selenium 24

Agenda

Testen von Weboberflächen

Was ist Selenium

Selenium Core

Selenium RC

Selenium IDE

Fazit

06.07.2007 Testen von Weboberflächen mit Selenium 25

Fazit

Vorteile

Unterstützung diverser Browser- und Betriebssystemplattformen

Kostengünstig, da Open Source

Geringe Lernkurve, dadurch auch von Fachabteilung nutzbar

Schnelle Erstellung von Tests über Selenium-IDE

Selenium-RC für automatische Regressionstests und ContinuousIntegration

06.07.2007 Testen von Weboberflächen mit Selenium 26

Fazit

Nachteile

XSS-Problematik beim Einsatz von Selenium Core

IDE nur für Firefox verfügbar

Keine vollständige Unterstützung aller Browserfeatures

Mit RC z. T. Probleme bei Einsatz von Internet Explorer und Opera

Evtl. Akzeptanzprobleme, da Open Source

06.07.2007 Testen von Weboberflächen mit Selenium 27

Diskussion

06.07.2007 Testen von Weboberflächen mit Selenium 28

Herzlichen Dank

für Ihre Aufmerksamkeit.

viadee Unternehmensberatung GmbHAnton-Bruchausen-Straße 848147 MünsterTelefon +49 251 7 77 77 0Telefax +49 251 7 77 77 888Bjoern.Eilers@viadee.dewww.viadee.de