Automatisiertes Testen von Webanwendungen mit Selenium und Watij Sebastian Westkamp. Seminar Ausgewählte Themen des Softwareengineering



Ähnliche Dokumente
Internet Explorer Version 6

Testen von webbasierten Benutzeroberflächen

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Giftige Akzeptanztests?

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Adminer: Installationsanleitung

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

FastViewer Remote Edition 2.X

COSIDNS 2 ISPconfig3. Version 0.1 ( )

quickterm Systemvoraussetzungen Version: 1.1

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Automatisches Exploratives Testen von Webanwendungen

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Tipp: Proxy Ausschalten ohne Software Tools

TeamViewer App für Outlook Dokumentation

MSDE 2000 mit Service Pack 3a

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

OP-LOG

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Installation von NetBeans inkl. Glassfish Anwendungs-Server

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Erste Schritte mit Sharepoint 2013

SANDBOXIE konfigurieren

Step by Step Webserver unter Windows Server von Christian Bartl

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

quickterm Systemvoraussetzungen Version: 1.0

TeamSpeak3 Einrichten

Anleitung zur Konfiguration Ihres Browsers

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Hilfe bei Adobe Reader. Internet Explorer 8 und 9

Was ist das Tekla Warehouse

H A N D B U C H FILEZILLA. World4You Internet Service GmbH. Hafenstrasse 47-51, A-4020 Linz office@world4you.com

Revit Modelle in der Cloud: Autodesk 360 Mobile

Erste Schritte nach der Installation

Kurzanweisung für Google Analytics

Installationsanleitung

Variablen & erweiterte Aktionen nutzen

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Die Dateiablage Der Weg zur Dateiablage

ÖKB Steiermark Schulungsunterlagen

Enterprise Control Center. Systemvoraussetzungen V2.1

INSTALLATION. Voraussetzungen

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Für die Bearbeitung von MySQL-Datenbanken ist das Administrationswerkzeug phpmyadmin integriert.

ERSTE SCHRITTE.

Firewalls für Lexware Info Service konfigurieren

Kurz-Anleitung zum Erstellen eines HotPot-Test

Step by Step Softwareverteilung unter Novell. von Christian Bartl

BFV Widget Kurzdokumentation

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

quickterm Systemvoraussetzungen Version: 1.0

Windows Server 2008 (R2): Anwendungsplattform

Task: Nmap Skripte ausführen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Einfügen mit Hilfe des Assistenten: Um eine Seite hinzufügen zu können, müssen Sie nur mehr auf ein Symbol Stelle klicken.

KVN-Portal. das Onlineportal der KVN. Dokumentation für Microsoft Windows. Version 4.0 vom Kassenärztliche Vereinigung Niedersachsen

Installationsanleitung WordPress auf greenwebhosting

SECURE DOWNLOAD MANAGER

Bedienungsanleitung. Homepage-Verwaltung mit Easy File Manager (EFM)

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Einbindung von Videos im ZMS

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

lññáåé=iáåé===pìééçêíáåñçêã~íáçå=

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

OSx / MAC. MegaZine3 MZ3-Tool3. Server Upload. Video 2-4

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Mac OSX und Safari / Mozilla Firefox

Secure Download Manager Übersichtsleitfaden Vertraulich Version 2.2

Hilfe zur ekim. Inhalt:

ClouDesktop 7.0. Support und Unterstützung. Installation der Clientsoftware und Nutzung über Webinterface

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

1 Was ist das Mediencenter?

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Sicherer Datenaustausch zwischen der MPC-Group und anderen Firmen. Möglichkeiten zum Datenaustausch... 2

4D Server v12 64-bit Version BETA VERSION

MailUtilities: Remote Deployment - Einführung

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Firewalls für Lexware Info Service konfigurieren

Zugriff auf die elektronischen Datenbanken

Installationshinweise BEFU 2014

Arbeiten mit Workflows Installationsleitfaden Zur Installation des d3 Workflows

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Hilfestellung für den Einsatz von Facebook-Applikationen

Grafstat Checkliste Internetbefragung

Webmodule. Informationen zur neuen Version der Online Auftragserfassung / Tracking & Tracing

How-to: Webserver NAT. Securepoint Security System Version 2007nx

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Ihr Benutzerhandbuch für das IntelliWebs - Redaktionssystem

Installation censhare Client. Inhaltsverzeichnis

Transkript:

Automatisiertes Testen von Webanwendungen mit Selenium und Watij Sebastian Westkamp Seminar Ausgewählte Themen des Softwareengineering

Agenda Motivation Selenium Watij Bewertung sowie Vergleich von Selenium und Watij 1

Agenda Motivation Selenium Watij Bewertung sowie Vergleich von Selenium und Watij 2

Motivation Webanwendungen sind komplexe und vollwertige Softwaresysteme Qualität der Anwendungen ist sehr wichtig Die wichtigste Qualitätssicherungsmaßnahme ist das Testen Das Testen nimmt zwischen 25% und 50% der gesamten Entwicklungsarbeit und kosten in Anspruch Tools sollen helfen ein effektives und effizientes Testen zu gewährleisten; ohne Werkzeugunterstützung ist ein Testen nicht mehr möglich 3

Agenda Motivation Selenium Selenium Core Selenium IDE Selenium Remote Control Watij Bewertung sowie Vergleich von Selenium und Watij 4

Selenium Werkzeug für das Testen von Webanwendungen Steuerung des Browsers mittels JavaScript Unterschiedlicher JavaScript-Code für verschiedene Browser vorhanden Selenium wurde von ThoughtWorks entwickelt, ist heute Open-Source und unter Apache 2.0 lizenziert Selenium gibt es in mehreren Varianten Selenium Core Selenium IDE Selenium Remote Control 5

Agenda Motivation Selenium Selenium Core Selenium IDE Selenium Remote Control Watij Bewertung sowie Vergleich von Selenium und Watij 6

Selenium Core Muss auf dem Webserver der zu testenden Webanwendung installiert werden Erstellung von Testfällen mittels der Sprache Selenese Testfälle können in Test-Suites zusammengefasst werden Zum Ausführen werden die Testfälle auf den Webserver kopiert Ausführung mittels Aufruf des TestRunners über den Browser auf der Client-Seite Einbettung der Test-Engine in die Webseite mittels JavaScript und iframes 7

8 TestRunner Oberfläche

Selenese Testfälle sind Tabellen in HTML-Dokumenten HTML-Tabelle mit 3 Spalten und n Zeilen Die erste Spalte enthält das Kommando, die beiden folgenden die Argumente Zeilen mit weniger als 3 Spalten werden ignoriert und können als Kommentar verwendet werden Selenese besteht aus: Aktionen Zusicherungen Element Lokatoren Variablen 9

Selenese Aktionen manipulieren den Zustand einer Webanwendung (click, open, type), Suffix AndWait Nach Ausführung von Aktionen untersuchen Zusicherungen den Zustand einer Webanwendung Element Lokatoren: id= name= identifier= dom=javascript-ausdruck xpath=xpath-ausdruck link=text css=css-selector-syntax 10

Selenese Variablen: Speichern von Werten und deren Einsatz in den Actions Möglichkeit eigene Aktionen, Zusicherungen und Lokatoren zu schreiben JavaScript-Code muss hierzu in der user-extensions.js hinterlegt werden Mögliche Erweiterung: Hinzufügen der Steuerung von Flash-Objekten 11

12 Beispiel-Testfall

13 Beispiel-Testfall

14 Beispiel-Testfall

15 Beispiel-Testfall

16 Beispiel-Testfall

17 Beispiel-Testfall

Beispiel-Testfall in Selenese Wird noch hinzugefügt 18

Grenzen von Selenium Core Muss auf dem Webserver der Webanwendung installiert sein; Testfälle müssen hierhin kopiert werden Sicherheitsbeschränkungen von JavaScript Same Origin Policy verbietet es, dass Dokumente und Skripte, die aus einer Quelle stammen, Eigenschaften eines Dokumentes aus einer anderen Quelle auslesen oder verändern Quelle wird bestimmt durch die Parameter: Domainname, Port und Protokoll Weiteres Problem: Hochladen von Dateien Umgehungsmöglichkeiten 19

Agenda Motivation Selenium Selenium Core Selenium IDE Selenium Remote Control Watij Bewertung sowie Vergleich von Selenium und Watij 20

Selenium IDE Firefox Plugin Erlaubt das Aufnehmen, Editieren und Debuggen von Tests Aufnahme der Tests durch Benutzen des Firefox Automatische Generierung des Selenese-Quellcodes Speicherung des Testfalles als HTML-Datei in Selenese oder Exportierung in die Sprachen: Java, C#, Perl, PHP, Python, Ruby Aufgenommene Testfälle können schrittweise oder mittels Breakpoints durchlaufen werden 21

22 Selenium IDE Oberfläche

Selenium IDE Durch Verwendung von chrome können die Sicherheitsrestriktionen von JavaScript umgangen werden Selenium IDE ist durch die Sprache Selenese beschränkt: Keine Unterstützung von Schleifen Kein Zugriff auf Dateien, die nicht über den Browser erreichbar sind 23

Agenda Motivation Selenium Selenium Core Selenium IDE Selenium Remote Control Watij Bewertung sowie Vergleich von Selenium und Watij 24

Selenium Remote Control Besteht aus 2 Teilen: Selenium Server Selenium Client-Treiber Selenium Server kann Browser kontrollieren, sie starten, stoppen und den Proxy einstellen; ist in Java geschrieben Interaktiver Modus 25

26 Funktionsweise

27 Selenium RC Oberfläche

Browser Launcher Verschiedene Arten: Standard: firefox, iexplore, safari, opera custom Experimentelle: chrome, iehta 28

Testbeispiel in Java private Selenium selenium; public void setup() { selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost"); selenium.start(); } public void testmerkmal() throws Exception { selenium.open("/herbie/"); selenium.type("loginname", "admin"); selenium.type("password", "admin"); selenium.click("//input[@value='submit']"); selenium.waitforpagetoload("30000"); asserttrue(selenium.istextpresent("herzlich Willkommen auf der Herbie- Plattform")); selenium.click("link=serviceverwaltung"); selenium.waitforpagetoload("30000"); selenium.click("link=merkmal neu anlegen"); selenium.waitforpagetoload("30000"); asserttrue(selenium.istextpresent("neues Merkmal anlegen")); 29

Testbeispiel in Java } selenium.select("scaling", "label=qualitativ"); selenium.waitforpagetoload("30000"); selenium.type("createcharacname", "Qualitätsstufe"); selenium.click("selectedscaleid"); selenium.selectframe("chartree"); selenium.click("//img"); selenium.waitforpagetoload("30000"); selenium.click("link=qualität"); selenium.selectframe("relative=up"); selenium.click("document.phoenixadminserviceform.elements[10]"); selenium.waitforpagetoload("30000"); asserttrue(selenium.istextpresent("qualitätsstufe")); selenium.click("qualvaluetodelete[2]"); selenium.click("//input[@value='zuweisung löschen']"); selenium.waitforpagetoload("30000"); asserttrue(selenium.istextpresent("merkmalszuweisung wurde erfolgreich gelöscht")); selenium.click("link=abmelden"); selenium.waitforpagetoload("30000"); asserttrue(selenium.istextpresent("sie wurden erfolgreich vom System abgemeldet")); 30

Agenda Motivation Selenium Watij Bewertung sowie Vergleich von Selenium und Watij 31

Watij Web Application Testing in Java API, mit dessen Hilfe der Internet Explorer kontrolliert und automatisiert werden kann, um Webanwendungen zu testen Ursprung: Watir Watij bedient sich der Java COM-Bridge Jacob Verschiedene Möglichkeiten um Elemente zu finden: Symbole (name, id, value, src) Finder XPath Vorkonfigurierte BeanShell enthalten 32

33 BeanShell

Testbeispiel private IE ie; public void setup() throws Exception{ ie = new IE(); ie.start("http://localhost/herbie"); } public void testmerkmal() throws Exception { ie.textfield(name, "loginname").set("admin"); ie.textfield(name, "password").set("admin"); ie.button("submit").click(); asserttrue(ie.containstext("herzlich Willkommen auf der Herbie-Plattform")); ie.link("serviceverwaltung").click(); ie.link("merkmal neu anlegen").click(); asserttrue(ie.containstext("neues Merkmal anlegen")); ie.selectlist(name, "scaling").selectvalue("qualitativ"); ie.textfield(name, "createcharacname").set("qualitätsstufe"); ie.radio(name, "selectedscaleid").set(); 34

Testbeispiel } Frame iframe = ie.frames().get(0); iframe.images().get(0).click(); iframe.link("/quali/").click(); ie.button("merkmal speichern").click(); ie.checkbox(name, "qualvaluetodelete[2]").set(); ie.button("zuweisung").click(); asserttrue(ie.containstext("merkmalszuweisung wurde erfolgreich")); ie.link("abmelden").click(); asserttrue(ie.containstext("sie wurden erfolgreich vom System abgemeldet")); 35

Agenda Motivation Selenium Watij Bewertung sowie Vergleich von Selenium und Watij 36

Selenium Übersicht Selenium Selenium Selenium Selenium IDE RC Core Core HTA Browser Unterstützung Nur FF Viele Alle Nur IE Installation auf dem Webserver Nein Nein Ja Nein Unterstützt HTTPS/ SSL Ja Ja Ja Ja Unterstützt mehrere Domains Ja Ja Nein Ja Benötigt Java Nein Ja Nein Nein Testergebnis-Speicherung Nein Ja Nein Ja Unterstützte Sprachen Selenese Viele Selenese Selenese 37

Selenium Verwendung von XPath zur Elementlokalisierung Unterschiedliche XPath-Implementierungen in Browsern Notwendigkeit des waitforpagetoload-kommandos Unterstützung von Uploads, Downloads und JavaScript- Confirmations ergibt geteiltes Bild Rudimentäres Logging Einfache Erweiterbarkeit mittels user-extensions.js Sicherheitsrestriktionen behindern und erschweren den Einstieg 38

Watij Elemente einer Seite sind als Objekte ansprechbar Sprachabhängigkeit bei Dialogen und beim Finden von Elementen Effizienteres Programmieren mittels ie.attach Die Seite-geladen-Erkennung funktioniert nicht reibungslos Schlechte API-Dokumentation Einfacher Einstieg 39

Gemeinsamkeiten Beide Tools sind Open-Source und damit in der Anschaffung kostenlos Rote Balken traten vor allem beim Nichtfinden von HTML-Elementen auf Beide Tools haben noch Fehler und Schwierigkeiten in der Bedienung Weiterentwicklungen: Reality QA und FireWatir 40

Fazit Selenium testet die Webanwendung und besonders die Browserkompatibilität sowie Plattformabhängigkeit Watij testet die Webanwendung mit Hilfe des meistgenutzten Browsers auf dem meistgenutzten Betriebssystem für Endnutzer 41

Ende Vielen Dank für die Aufmerksamkeit! Fragen? 42