Startseite
Kontakt
Inhaltsverzeichnis
Vorwort
Intro: Die hohe Kunst der GUI-bezogenen Testautomatisierung
Besondere Anforderungen des GUI-Testens
Der komponentenbasierte Ansatz als Lösung
web2test oder QF-Test?
Hinweise zur Benutzung dieses Handbuchs
I Anwenderhandbuch
1 Installation und Start
1.1 Systemvoraussetzungen
1.2 Windows-Installation
1.3 Linux Installation
1.3.1 Installation prüfen
1.3.2 Verwendung von Mozilla unter Linux
1.4 Lizenzdatei
1.5 Konfigurationsdateien
1.6 Aufruf von web2test
1.7 Firewall Sicherheitswarnung
2 Bedienung von web2test
2.1 Das Hauptfenster von web2test
2.2 Die Testsuite
2.3 Bearbeiten einer Testsuite
2.3.1 Navigation im Baum
2.3.2 Einfügemarkierung
2.3.3 Knoten verschieben
2.3.4 Knoten konvertieren
2.3.5 Tabellen
2.3.6 Packen und Entpacken
2.4 Erweiterte Bearbeitungsmöglichkeiten
2.4.1 Allgemeine Suche
2.4.2 Ersetzen
2.4.3 Mehrere Ansichten
3 Der Schnellstart Wizard
4 Starten einer Webanwendung im Browser
4.1 Browser starten/öffnen Knoten
4.2 Programmausgaben und das Clients Menü
5 Aufnahme und Wiedergabe
5.1 Aufnahme von Testsequenzen
5.2 Aufnahme von (GET/POST) Requests
5.3 Abspielen von Tests
5.4 Aufnehmen von Checks
5.5 Komponenten aufnehmen
6 Komponenten
6.1 Hierarchie der Komponenten in HTML
6.2 Komponenten in web2test
6.3 Ids von Komponenten
6.4 Klassen von Komponenten
6.5 Warum Namen so wichtig sind
6.6 Erwägungen zur Vergabe von Namen
6.7 Komponenten aktualisieren
6.8 Lösung von Problemen bei der Wiedererkennung
6.9 Nicht notwendige Aufzeichnungen ersparen oder generische Komponenten einsetzen
6.10 Zugriff auf ausgeblendete Komponenten einer Webseite (hidden fields)
7 Unterelemente komplexer GUI Komponenten
7.1 Unterelemente
7.2 Besondere Id-Syntax für direkten Zugriff auf Unterelemente
8 Variablen
8.1 Ermittlung des Wertes einer Variablen
8.2 Definition von Variablen
8.3 Variablen-Beispiel
8.4 Spezielle Gruppen
8.5 Berechnungen
8.6 Immediate und Lazy Binding
9 Problemanalyse und Debugging
9.1 Das Protokoll
9.1.1 Fehlerzustände
9.1.2 Navigation im Protokoll
9.1.3 Werte von fehlgeschlagenen Checks als gültig akzeptieren
9.1.4 Geteilte Protokolle
9.1.5 Protokoll-Optionen
9.2 Der Debugger
9.2.1 Aktivieren des Debuggers
9.2.2 Das Debuggerfenster
9.2.3 Debugger Kommandos
9.2.4 Breakpoints setzen und löschen
10 Aufbau und Organisation einer Testsuite
10.1 Sequenz und Test Knoten
10.2 Verwaltung von Tests mit Hilfe von Testfallsatz und Testfall Knoten
10.2.1 Begriffe
10.2.2 Variablen und besondere Attribute
10.3 Migration
10.4 Prozeduren und Packages
10.5 Lokale Prozeduren und Packages
10.6 Relative Prozeduren
10.7 Einfügen von Prozeduraufruf Knoten
10.8 Parametrisieren von Knoten
10.9 Konvertieren von Sequenzen in Prozeduren
10.10 Dokumentieren von Testsuiten
11 Abhängigkeiten
11.1 Grundlagen von Abhängigkeiten
11.2 Der Stapel von Abhängigkeiten
11.3 Eskalation von Fehlern
11.4 Spezielle Variablen
11.5 Fehlerbehandlung
12 Skripting
12.1 Grundlagen der Jython Integration
12.2 Der Runcontext rc
12.3 Beispiele zum Skripting
12.3.1 Meldungen ausgeben
12.3.2 Checks durchführen
12.3.3 Zugriff auf Variablen
12.3.4 Variablen setzen
12.3.5 Globale Jython Variablen
12.3.6 Austausch von Variablen zwischen verschiedenen Interpretern
12.3.7 Zugriff auf die GUI Komponenten des SUT
12.3.8 Aufruf von Prozeduren
12.3.9 Setzen von Optionen
12.3.10 Ein komplexes Beispiel
12.3.11 Zugriff auf CSS-Attribute - JavaScript Bridge
12.4 Module
12.5 Post-mortem Fehleranalyse von Jython Scripts
12.6 Groovy Skripting
12.6.1 Zugriff auf Variablen in Groovy
12.6.2 Globale Groovy Variablen
12.6.3 Groovy Packages
12.7 Arbeiten mit dem Skripteditor
13 Datengetriebenes Testen
13.1 Beispiele für Datentreiber
13.2 Anwendung von Datentreibern
13.3 Fortgeschrittene Anwendung
14 Testberichte, Testdurchführungsberichte und Testdokumentation
14.1 Testberichte (Reports)
14.1.1 Inhalte
14.1.2 Testberichte (Reports) erstellen
14.2 Testdurchführungsberichte
14.2.1 Inhalte
14.2.2 Testdurchführungsberichte erstellen
14.3 Testdoc Dokumentation für Testfallsätze und Testfälle
14.4 Pkgdoc Dokumentation für Packages und Prozeduren
15 Testausführung
15.1 Testausführung im Batchmodus
15.1.1 Verwenden der Kommandozeile
15.1.2 Windows Befehlsskript
15.1.3 Ant
15.1.4 Groovy
15.2 Testausführung im Daemonmodus
15.2.1 Starten des Daemons
15.2.2 Steuern des Daemons über die web2test Kommandozeile
15.2.3 Steuern des Daemons über die Daemon API
16 Verteilte Entwicklung von Tests
16.1 Der Aufruf einer Prozedur in einer anderen Testsuite
16.2 Die Verwaltung von Komponenten
16.3 Verschmelzen von Testsuites
16.4 Verteilte Entwicklung von Tests
17 Anbindung an Testmanagementtools
17.1 Einführung
17.2 HP TestDirector for Quality Center
17.2.1 Einführung
17.2.2 Schritt für Schritt Anleitung
18 Durchführung von Lasttests über das GUI
18.1 Hintergrund und Vergleich mit anderen Techniken
18.2 Lasttest mit web2test
18.2.1 Ausführung von Tests in parallelen Threads
18.2.2 Synchronisierung
18.2.3 Koordinieren von Tests auf mehreren Rechnern
19 Ausführung manueller Tests mit web2test
19.1 Einführung
19.2 Schritt-für-Schritt Anleitung
19.3 Aufbau der Excel Datei
19.4 Die Ausführungstestsuite
19.5 Die möglichen Status
II Referenzteil
20 Einstellungen
20.1 Allgemeine Optionen
20.1.1 Externe Programme
20.1.2 Sicherungskopien
20.1.3 Bibliothekspfad
20.2 Aufnahme Optionen
20.2.1 Folgende Events aufnehmen
20.2.2 Eventsequenzen packen
20.2.3 Komponenten
20.3 Wiedergabe Optionen
20.3.1 Client Optionen
20.3.2 Events
20.3.3 Wiedererkennung der Komponenten
20.3.4 Verzögerungen
20.3.5 Automatische Timeouts
20.4 Web-Optionen
20.5 Debugger Optionen
20.6 Protokoll Optionen
20.6.1 Allgemeine Protokoll Optionen
20.6.2 Optionen für den Inhalt von Protokollen
20.7 Variablen
21 Bestandteile einer Testsuite
21.1 Die Testsuite und ihre Struktur
21.1.1 allgemeine Knoten Attribute
21.1.2 Testsuite
21.2 Test und Sequenz Knoten
21.2.1 Testfall
21.2.2 Testfallsatz
21.2.3 Testaufruf
21.2.4 Test
21.2.5 Sequenz
21.2.6 Sequenz mit Zeitbeschränkung
21.2.7 Extrasequenzen
21.3 Abhängigkeiten
21.3.1 Abhängigkeit
21.3.2 Bezug auf Abhängigkeit
21.3.3 Vorbereitung
21.3.4 Aufräumen
21.3.5 Fehlerbehandlung
21.4 Datentreiber
21.4.1 Datentreiber
21.4.2 Datentabelle
21.4.3 Datenbank
21.4.4 Excel Datei
21.4.5 CSV Datei
21.4.6 Datenschleife
21.5 Prozeduren
21.5.1 Prozedur
21.5.2 Prozeduraufruf
21.5.3 Return
21.5.4 Package
21.5.5 Prozeduren
21.6 Ablaufsteuerung
21.6.1 gemeinsame Attribute von Ablaufsteuerungs-Knoten
21.6.2 Schleife
21.6.3 While
21.6.4 Break
21.6.5 If
21.6.6 Elseif
21.6.7 Else
21.6.8 Try
21.6.9 Catch
21.6.10 Finally
21.6.11 Throw
21.6.12 Rethrow
21.6.13 Server Skript
21.6.14 SUT Skript
21.7 Programm Knoten
21.7.1 Browser starten
21.7.2 Programm starten
21.7.3 Shellkommando ausführen
21.7.4 Warten auf Client
21.7.5 Programm beenden
21.7.6 Warten auf Programmende
21.8 Events
21.8.1 Mausevent
21.8.2 Tastaturevent
21.8.3 Texteingabe
21.8.4 Fensterevent
21.8.5 Komponentenevent
21.8.6 Auswahl
21.9 Checks
21.9.1 gemeinsame Attribute von Check Knoten
21.9.2 Check Text
21.9.3 Check Boolean
21.9.4 Check Elemente
21.9.5 Check selektierbare Elemente
21.9.6 Check Abbild
21.9.7 Check Geometrie
21.10 Abfragen
21.10.1 Text auslesen
21.10.2 Geometrie auslesen
21.11 Verschiedenes
21.11.1 Variable setzen
21.11.2 Warten auf Komponente
21.11.3 Warten auf DocumentComplete
21.11.4 Warten auf DownloadComplete
21.11.5 Request
21.12 Webseiten, Komponenten und Elemente
21.12.1 Webseite
21.12.2 Komponente
21.12.3 Element
21.12.4 Webseiten und Komponenten
22 Exceptions
III Technische Referenz
23 Kommandozeilenargumente und Rückgabewerte
23.1 Aufrufsyntax
23.2 Kommandozeilenargumente
23.2.1 Argumente für das Startskript
23.2.2 Argumente für die Java VM
23.2.3 Argumente für web2test
23.2.4 Platzhalter im Dateinamen für Protokoll und Report
23.3 Rückgabewerte von web2test
24 Technische Details zu verschiedenen Themen
24.1 Wiedererkennung von Komponenten
24.2 Timing
24.3 Reguläre Ausdrücke - Regexps
24.4 Zeilenumbrüche in Unix und Windows
24.5 Maskieren von Sonderzeichen (quoting)
24.6 Auflösen von Include Dateien
25 Jython und Groovy Skripting
25.1 Pfad für das Laden der Module (Jython)
25.2 Das Plugin Verzeichnis
25.3 Der Package Cache (Jython)
25.4 Initialisierung (Jython)
25.5 Die Namespace Umgebung für Skript Knoten (Jython)
25.6 Das API des Runcontexts
25.7 Image API
25.7.1 Die ImageWrapper Klasse
25.8 Exceptions
25.9 Debuggen von Skripten (Jython)
26 APIs für Erweiterungen
26.1 Resolver Hooks
26.1.1 Übersicht über die unterstützten Arten von Resolvern
26.1.2 Das ClassNameResolver Interface
26.1.3 Das NameResolver2 Interface
26.1.4 Das IdResolver Interface
26.1.5 Das FeatureResolver2 Interface
26.1.6 Das ExtraFeatureResolver Interface
26.1.7 Vereinfachte Erstellung von Resolvern mit dem resolvers Modul
26.1.8 Die ResolverRegistry
26.1.9 Fehlerbehandlung
26.2 Implementierung eigener Checks mit dem Checker Interface
26.2.1 Das Checker Interface
26.2.2 Das CheckType Interface und seine Implementierung DefaultCheckType
26.2.3 Die Klasse CheckDataType
26.2.4 Die Klasse CheckData und ihre Unterklassen
26.2.5 Die CheckerRegistry
26.3 Listener für den aktuellen Testlauf
26.3.1 Das TestRunListener Interface
26.3.2 Die Klasse TestRunEvent
26.3.3 Die Klasse TestSuiteNode
26.4 DOM Prozessoren
26.4.1 Das DOMProcessor Interface
26.4.2 Die DOMProcessorRegistry
26.4.3 Fehlerbehandlung
26.5 Image API Erweiterungen
26.5.1 Die ImageRep Klasse
26.5.2 Das ImageComparator Interface
27 Daemon Modus
27.1 Der DaemonLocator
27.2 Der Daemon
27.3 Der TestRunDaemon
27.3.1 Verschiedenes
27.3.2 Bearbeiten globaler Variablen
27.3.3 Testausführung
27.3.4 Identifikation
27.4 Der DaemonRunContext
27.5 Der DaemonTestRunListener
28 Checks für HTML-Tags
29 Der ManualStepDialog
29.1 Die ManualStepDialog API
30 Details zu Knotenkonvertierungen
30.1 Einführung
30.2 Konvertierungen mit Typwechseln
30.3 Zusätzliche Konvertierungen unter Extrasequenzen
30.3.1 Konvertierungen ohne Seiteneffekte
30.3.2 Konvertierungen mit Seiteneffekten
A Pseudo DOM API für Webanwendungen
A.1 Die abstrakte Klasse Node
A.2 Die Klasse DocumentNode
A.3 Die Klasse FrameNode
A.4 Die Klasse DomNode
A.5 Die Klasse DialogNode
B FAQ - Häufig gestellte Fragen
B.1 Evaluation und Lizenzen
B.2 Support, Schulung und Feedback
B.3 Installation und Start
B.4 Ausführen von Tests
C Tastaturkürzel
C.1 Navigation und Editieren
C.2 Aufnahme- und Wiedergabefunktionen
C.3 Tastaturhelfer
D Benutzte Software