Canoo WebTest

advertisement
Canoo WebTest
Testautomatisierung
von Webanwendungen
DI Siegfried GÖSCHL
siegfried.goeschl@it20one.at
26.06.2002
Die Vorteile
§ Ständiges Wiederholen von Tests ist langweilig
– Fragen Sie mal Ihre Tester ….
§ Manche Tests sind manuell nur schwer ausführbar
– Testen komplexer Suchfunktionen
– Testen auf Broken Links
§ Testautomatisierung von Webapplikationen mit Daily
Build erhöht die Qualität
– Server wird jeden Tag getestet
– Implizites Wissen wird formalisiert
– Dokumentation des Projektfortschrittes
Alle reden davon,
wenige tun es …
Canoo WebTest
2
2
Die Probleme
Automatisiertes
AutomatisiertesTesten
Testenvon
vonWebanwendungen
Webanwendungen
§ Automatisieren von Tests ist aufwendig
–
–
–
–
–
Testplanerstellung
Schreiben und Wartung der Testscripts
Verifikation der Resultate
Automatisches Deployment der Serverapplikation
Handling der Testdaten
§ Automatisieren von Tests rechnet sich erst nach
einigen Testwiederholungen
§ Kommerzielle Werkzeuge sind teuer
Just another
useless silver
bullet?!
Canoo WebTest
3
3
Eine Lösung?!
Canoo
CanooWebTest
WebTest
§
§
§
§
Open Source Projekt von Canoo Engineering AG
Canoo Webtest läuft als ANT Task
Test Skripts sind in XML geschrieben
Baut auf andere Open Source Projekte auf
–
–
–
–
Canoo WebTest
HTTPUnit für HTTP Kommunikation
JTidy oder NekoHTML für HTML Document Object Model
DOM4J für Java DOM Implementierung
ORO für Regular Expressions
4
4
Ein kurzes Beispiel
Screen
HTML Template
WebTest Script
Canoo WebTest
5
5
Canoo WebTest
The
TheGood
Good...
...
§ ANT Integration
– Erlaubt Verwendung aller ANT Funktionalitäten, wie DBUnit
oder SQL
§ XML Zentrierung
– Erleichtert Integration in bestehende Systeme
– Erlaubt „Nichtprogrammierern“ das Schreiben von Tests
– XML Test Reports können via XSL transformiert werden
§ Document Object Model
– HTML Dokumente werden als DOM angesprochen
– XPath für Verifikation anstelle von Regular Expressions
§ SSL Unterstützung
Canoo WebTest
6
6
Canoo WebTest
The
TheBad
Bad...
...
§ Kein Capture & Replay Tool
– Testfälle müssen manuell erstellt werden
§ SSL Untersützung
– SSL Authentifizierung mit Zertifikaten nicht implementiert
§ HTTP Proxy Support
– Wird nicht direkt unterstützt (via ANT möglich)
§ Wohlgeformtes HTML notwendig
– Ungültiges HTML führt zu Fehlern bei der Transformation in
ein XML DOM
Canoo WebTest
7
7
Was passiert wirklich?!
open source software
WebTest
erstellte Dateien generierte Dateien
..
Test Script
[XML, WebTest Befehle]
Canoo
WebTest
Test Resultat
[XML]
Ant
Script
[XML]
createSummaryReport
[XML]
ApplyXSL
[XML]
WebTestReport
[XSL]
Xerces
xalan
reportFromSummary
[XSL]
WhitePaperStyle
[XSL]
TestResultOverview
[html]
Canoo WebTest
8
8
Einige Canoo WebTest Kommandos
config
Konfiguration eines Tests
Invoke
Verzweigung zu einer HTML Seite
clicklink
Klick auf einen Link
clickbutton
verifytitle
Klick auf einen Button
verifytext
Überprüft das Vorhandensein einer
Zeichenkette innerhalb der HTML-Seite
setinputfield
Setzen eines Eingabefeldes
setcheckbox
Setzen einer Checkbox
setselectfield
Setzen eines Wertes einer Select Box
storexpath
Speichern des Resultats einer XPath
Expression
storeregex
Speichern des Resultats einer Regular
Expression
Canoo WebTest
Überprüft den Titel einer HTML Seite
9
9
<config>
<testSpec name="Visit the shop on myhost">
<config
host="www.myhost.com"
port="8080"
protocol="http"
basepath="shop"
summary="true"
verbose="true"
saveresponse="true"
resultpath="/tmp/results"
>
<header name="User-Agent" value="Mozilla/4.0"/>
<header name="Accept-Language" value="de-ch"/>
</config>
...
</testSpec>
Canoo WebTest
10
10
<invoke>
<testSpec name="Visit all pages without update">
<config ... />
<steps>
<invoke stepid=„Goto start page"
url=„appstart.html„
save="myResultPage“
username=„foo“
password=„bar“
/>
...
</steps>
</testSpec>
Canoo WebTest
11
11
<setinputfield>
<testSpec name="Login with vaild user/password">
<config ... />
<steps>
<invoke ... />
<setinputfield stepid="set user name"
name="username"
value="scott" />
<setinputfield stepid="set password"
name="password"
value="tiger" />
<clickbutton stepid="Click the submit button"
label="Login" />
...
</steps>
</testSpec>
Canoo WebTest
12
12
<verifytitle>
<testSpec name="Verify user name in document title">
<config ... />
<steps>
<invoke ... />
<verifytitle
stepid="Title can include user name"
text="User .* - Main View"
regex="true" />
...
</steps>
</testSpec>
Canoo WebTest
13
13
<verifyxpath>
<target name="testXPath">
<testSpec name="xpath" >
&sharedConfiguration;
<steps>
..
<verifyxpath stepid="simple match"
xpath="/html/head/title"/>
<verifyxpath stepid="more complicated match"
xpath="//img[@src='seibertec.gif']"/>
<verifyxpath stepid="simple match with value"
xpath="/html/head/title"
text="Canoo WebTest"/>
</steps>
</testSpec>
</target>
Canoo WebTest
14
14
Das Ergebnis
Canoo WebTest
15
15
Die ANT Integration
§ Canoo WebTest als ANT Task
§ Aufruf von Canoo WebTest via ANT benötigt
individuelle Anpassung
–
–
–
–
Löschen von temporären Dateien
Start von Canoo WebTest
Aufruf von XALAN für HTML Report
Einbinden der HTML Reports in eine Website
Maven WebTest
Plugin ?!
Canoo WebTest
16
16
Die Praxis
§ Ungültiges HTML
– Patch von Canoo WebTest ermöglicht Ausgabe des internen
HTML DOM Tree
§ Deutsche Sonderzeichen
– Verwendung von UTF-8 erspart Probleme
§ Modularisierung der Tests
– Splitten der Tests in mehrere ANT Targets
– Inkludieren von XML Fragmenten via Entity References
Canoo WebTest
17
17
Die Praxis
Modularisierung
Modularisierungmit
mitEntity
EntityReferences
References
<config
host="www.myserver.com"
port="8080"
protocol="http"
basepath="myApp" />
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "WebTest.dtd"[
<!ENTITY definition SYSTEM "definition.xml">
<!ENTITY config
SYSTEM "config.xml">
<!ENTITY login
SYSTEM „login.xml">
]>
&config;
Canoo WebTest
18
18
Die Praxis
§ Trennung von Skript und
Daten
– ANT Properties
– ANT Property Files
§ Validierung
– XPath erlaubt die
Validierung komplexer
HTML Formulare
– Regular Expression
nur in Ausnahmefällen
– Tests der Regular
Expressions mit
XPath Explorer
Canoo WebTest
19
19
Eine Fallstudie
Together
TogetherTeamlösungen
Teamlösungen
§ Maven als Build Environment
– Aufruf von Canoo WebTest mit Maven WebTest Plugin
§ Testsuite mit mehr als 60 Tests
§ Daily Build and Smoke Test
– Daily Compile, Deployment and Testing Cycle
– Testreports täglich im Intranet verfügbar
§ Konfiguration erlaubt Umschaltung zwischen
verschiedenen Testservern
– HTTP oder HTTPS
– Verschiedene User
Canoo WebTest
20
20
Eine Fallstudie
Canoo WebTest
21
21
Zusammenfassung
Canoo
CanooWebTest
WebTest
§
§
§
§
§
Open Source Projekt von Canoo Engineering AG
ANT zur Exekution der Testskripts
HTML Testreport via XSLT
Einfache Integration in ANT und MAVEN Build
Auch von „Nichtprogrammierer“ verwendbar
Demnächst auch
in Ihrem Projekt?!
Canoo WebTest
22
22
The End
Any questions !?
Canoo WebTest
23
23
Related Links
Canoo Webtest
http://webtest.canoo.com
ANT
http://jakarta.apache.org/ant/index.html
Maven
http://www.maven.org
Webtest Plugin
http://maven-plugins.sourceforge.net/webtest/index.html
ORO
http://jakarta.apache.org/oro/
JTidy
http://sourceforge.net/projects/jtidy/
DOM4J
http://www.dom4j.org/
NekoHTML
http://www.apache.org/~andyc/neko/doc/html/
XPathExplorer
http://www.purpletech.com/xpe/index.jsp
XPath
http://www.zvon.org/xxl/XPathTutorial/General/examples.html
Canoo WebTest
24
24
Herunterladen