End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes (...
Transcript of End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes (...
22.10.2012
End2End-Monitoring von Webapplikationen mit Sahi und OMD Simon Meggle, Monitoring Consultant
22.10.2012 www.consol.de 2
• Einführung • Motivation
• Eigenschaften von Sahi
• Funktionsweise von Sahi • Sahi-Proxy, Suites und Cases, Sahi-API
• Live-Demo 1: „Login und Logout“
• Sahi2OMD • Vorstellung
• Grundgerüst für Sahi-Scripts
• NSCA-Modus / DB-Modus
• Fallbeispiel / Live-Demo 2: „OXID Functionality“ • Sahi-Testcases, Batchrunner, Output in OMD
End2End-Monitoring von Webapplikationen mit Sahi und OMD
22.10.2012 www.consol.de 3
Motivation
www. superwichtig.
de
BP A
Service a
Service b
Service c
BP B
Service f
Service g
Service h
BP C
Service k
Service l
Service m
Service n
Service o
Monitoring der Gesamtfunktionalität durch
• punktuelle Checks
• Aggregation
• Service/Hostgroups
• Business-Prozesse
22.10.2012 www.consol.de 4
Motivation
22.10.2012 www.consol.de 5
Sahi: Eigenschaften und Voraussetzungen
• Was ist/kann Sahi? entwickelt von Narayan Raman (Indien) Web Automation and Testing Tool“
-> Tool zur Simulation von User-Aktion im Webbrowser AJAX, Frames, iFrames, Up/Downloads, Browser alerts, NTLM Auth, HTTPS… leistungsfähige API
intelligente Objekt-Adressierung auch über Frames/iFrames hinweg (kein XPath) Funktionen für File/DB-Zugriff
Batch Mode & Multi-Threaded Playback Sahi erkennt , wenn Seiten/AJAX-Requests fertig sind Sahi läuft auf jedem OS mit Java (z.b. auch iOS, Android…) in jedem Browser (ohne Plugin) Open Source
• Was ist/kann Sahi nicht? − alles, was nicht über DOM angesprochen werden kann (z.b. Flash, Applets) − Tests außerhalb des Browserinhaltes ( AutoIt)
http://sahi.co.in/
22.10.2012 www.consol.de 6
Funktionsweise: Sahi-Proxy
HTTP Request/Response
Webserver
Browser
Workstation
• „normaler“ Webtraffic: HTTP Request/Response
22.10.2012 www.consol.de
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet
7
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise: Sahi-Proxy
Browser Sahi-Prozess
22.10.2012 www.consol.de 8
localhost:9999
Sahi Test-Host
Testcase
Webserver
Funktionsweise: Sahi-Proxy
HTTP Request/Response
Browser Sahi-Prozess
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript
22.10.2012 www.consol.de 9
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise: Sahi-Proxy
HTTP Request/Response
Browser Sahi-Prozess
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript
Testcase
22.10.2012 www.consol.de
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript
10
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise: Sahi-Proxy
HTTP Request/Response
Browser Sahi-Prozess
Testcase
22.10.2012 www.consol.de 11
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise: Sahi-Proxy
Browser Sahi-Prozess
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript • Wiedergabe durch Injizieren der SahiScripts in den Browser
Testcase
22.10.2012 www.consol.de 12
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise: Sahi-Proxy
HTTP Request/Response
Browser Sahi-Prozess
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript • Wiedergabe durch Injizieren der SahiScripts in den Browser
Testcase
22.10.2012 www.consol.de 13
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise: Sahi-Proxy
HTTP Request/Response
Browser Sahi-Prozess
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript • Wiedergabe durch Injizieren der SahiScripts in den Browser
Testcase
22.10.2012 www.consol.de
• „normaler“ Webtraffic: HTTP Request/Response
• Sahi wird als Proxy zwischengeschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript • Wiedergabe durch Injizieren der SahiScripts in den Browser
• Auch externe Proxies werden unterstützt
14
localhost:9999
Sahi Test-Host
Funktionsweise: Sahi-Proxy
Browser Sahi-Prozess
Webserver Proxy
Testcase
22.10.2012 www.consol.de 15
Sahi-Suites und Cases
c1.case c2.case c3.case c4.case c5.case
testcases/c1.case http://url
testcases/c2.case http://url
testcases/c3.case http://url
testcases/c4.case http://url
testcases/c5.case http://url test.suite
22.10.2012 www.consol.de 16
Funktionsweise: DOM
• DOM = Document Object Model • Norm, die den Zugriff auf Objekte in einem Markup-Dokument (z.b. HTML) bietet • Markup-Dokumente bestehen aus Knoten in einer Baumstruktur
<table>
<thead> <tr> <th>Vorname</th> <th>Name</th> </tr> </thead> <tbody> <tr> <td>Donald</td> <td>Duck</td> </tr> </tbody> </table>
http://www.wikipedia.org/
22.10.2012 www.consol.de 17
Funktionsweise: Sahi-APIs
Browser Accessor API Browser Action API Miscellaneous API
22.10.2012 www.consol.de 18
Funktionsweise: Sahi-APIs
• Browser Accessor APIs • Funktionen, die den Zugriff auf DOM-Objekte im Browser ermöglichen • erwarten einen Identifier
• Identifier = Indizes, IDs, Namen, CSS-Klassennamen, etc… (auch als Regex) • Beispiel:
<a href="http://www.consol.de" id=“consol_link">Home</a>
_link(9) der 10. Link auf der Seite _link(„consol_link“) Link mit der ID „consol_link“ _link(/consol_.*/) ebenfalls, als Regex _link(„Home“) Link mit dem Text „Home“
http://sahi.co.in/w/browser-accessor-apis
22.10.2012 www.consol.de 19
Funktionsweise: Sahi-APIs
• Browser Accessor APIs – Lokalisierung mit „DOM Relations“ • Funktionen, die den Zugriff auf DOM-Objekte im Browser ermöglichen • erwarten einen Identifier und eine optionale DOM Relation
• Identifier = Indizes, IDs, Namen, CSS-Klassennamen, etc… (auch als Regex) • DOM Relation = DOM Relation Marker(DOM Objekt) • DOM Relation Marker = Beziehung zweier Elemente im DOM:
• _near()
• _under()
• _in()
• Je mehr DOM Relations verwendet werden, desto robuster werden Sahi-Cases!
_image(“delete.gif”, _near(_cell(“usr4”))
_link(„Details“, _under(_cell(„details“)))
_link(„Details“, _in(_cell(„product_facts“)))
http://sahi.co.in/w/browser-accessor-apis
22.10.2012 www.consol.de 20
Funktionsweise: Sahi-APIs
• Browser Action APIs • Funktionen, die Aktionen im Browser auslösen
• Mausaktionen: _click(), _mouseOver(), _dragDrop(), ..., ... • Tastenaktionen: _keyPress(), keyDown(), ..., ... • Daten-Aktionen: _setValue(), ..., ...
• Prüf-Routinen • Vergleiche : _assertEqual(), assertContainsText(), assertNotEqual()..., ... • Vorhandensein : _assertExists(), assertNotExists()..., ... • Debugging: _debug(), _prompt(), _alert()..., ... • u.v.m. ...
http://sahi.co.in/w/browser-action-apis
• Miscellaneous APIs • Helper-Funktionen: _random(), _sessionInfo(), _lastDownloadedFileName(), ... • Log-Funktionen: _logException(), _stopOnError(), ... • Daten-Funktionen: _getDB(), _readFile(), _writeToFile(), _readCSVFile(), ... • Browser-Erkennung: _isIE(), _isFF(), _isChrome(), _isSafari() • u.v.m. ...
22.10.2012 www.consol.de 21
Demo: „Login und Logout“ – der erste Sahi-Testcase
22.10.2012 www.consol.de 22
Vorstellung von sahi2omd
• Motivation für die Entwicklung
• Verbesserung der Fehleranalyse
• Modularisierung
• Schnittstellen zu Nagios
• Anreicherung mit Informationen
• Features
• NSCA/DB-Modus
• Screenshots bei Exceptions
• Laufzeit-Performancedaten
• Suites
• Cases
• Steps
• PNP-Templates inclusive
22.10.2012 www.consol.de 23
Sahi2OMD | Grundgerüst für Sahi-Scripts
Hilfs-Funktionen
Threshold für Laufzeit des Cases
Sahi-Script
Fehlerbehandlung
Verarbeiten des Ergebnisses
22.10.2012 www.consol.de
OMD-Server Sahi-Host
24
Sahi2OMD | NSCA-Modus
Task Scheduler
sahi2omd –mode nsca \ sahisuite.suite - Environment-Checks - Sahi-Start
Results
- Results einlesen - Auswertung
send_nsca.exe
nagios.inc
22.10.2012 www.consol.de 25
Sahi2OMD | DB-Modus (neu)
OMD-Server
Sahi-Host
Task Scheduler
Result-DB
check_mysql_health
sahi2omd –mode db \ sahisuite.suite - Environment-Checks - Sahi-Start
nagios.inc
Sahi.pm
22.10.2012 www.consol.de 26
Fallbeispiel / Live-Demo2: „OXID Functionality“
22.10.2012 www.consol.de 27
Danke für die Aufmerksamkeit!
Icons: http://artdesigner.lv http://spassfieber.de