End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes (...

27
22.10.2012 End2End-Monitoring von Webapplikationen mit Sahi und OMD Simon Meggle, Monitoring Consultant

Transcript of End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes (...

Page 1: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012

End2End-Monitoring von Webapplikationen mit Sahi und OMD Simon Meggle, Monitoring Consultant

Presenter
Presentation Notes
Vorstellen: seit 10 Jahren mit Nagios zu tun seit gut 1 Jahr ConSol, verschiedene Monitoring-Projekte und entwickle u.a. an Projekten wie ... Thema meines Vortrags: zwei Welten zueinander
Page 2: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Was habe ich heute vor zu zeigen? ---- END: Ok, worum geht’s beim „End2End“: SWITCH
Page 3: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Wir wollen die Gesamtfunktionalität sicherstellen schnell 100/1000e von einzelnen Checks zusammen - die Zusammenhänge stelen wir durch Businessprozesse – HOST SERVICEgruppen dar Schließ aber die Möglichkeit nicht aus, irgendein kleiner Fehler im Gesamtsystem verhindert dass die Webseite so arbeitet wie sie soll. __END Wir sitzen im Auto, der hochintelligente Bordcomputer sagt „alles OK“, aber es kann passieren, dass wir aus irgendeinem Grund.... SWITCH
Page 4: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012 www.consol.de 4

Motivation

Presenter
Presentation Notes
...nicht losfahren können.
Page 5: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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/

Presenter
Presentation Notes
Browser automation: zu viele Typen (Firefox, IE, Chrome, Safari…) zu viele Versionen zu oft Releases keine API-Standards zur Automation
Page 6: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012 www.consol.de 6

Funktionsweise: Sahi-Proxy

HTTP Request/Response

Webserver

Browser

Workstation

• „normaler“ Webtraffic: HTTP Request/Response

Presenter
Presentation Notes
Normaler Fall: request & Response
Page 7: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Nun wird Sahi auf dem glechen Host installiert. Dieser Prozess hört auf dem Port 9999 Über diesen Prozess kann ich Browser mit speziellen Profilen starten, in denen dieser Proxy hinterlegt ist. ___END Wie zeichne ich nun Tests auf?
Page 8: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Sahi schreibt Alle an den Webserver weitergeleiteten Aktionen als SahiScript auf.
Page 9: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Der Server antwortet mit der Seite
Page 10: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
...die Sahi dann zurrück an den Browser ausgibt.
Page 11: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Bei der Wiedergabe geht die Aktion vom SahiScript aus. Da der Browser Javascript von Sahi „vorlädt“, kann er über den Proxy ferngesteuert werden.
Page 12: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Diese Aktionen werden dann wiederum über den Sahi-Proxy ins Netz geleitet...
Page 13: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
der Webserver antwortet dann mit der Response.
Page 14: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
___END ein solcher Case kann entweder einzeln abgespielt werden....
Page 15: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
__END: wie greift Sahi auf die Seiteninhalte zu?
Page 16: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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/

Page 17: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012 www.consol.de 17

Funktionsweise: Sahi-APIs

Browser Accessor API Browser Action API Miscellaneous API

Page 18: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Page 19: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Wenn ich mit den normalen Accessor Funktionen keinen Erfolg habe stehen die Chancen gut
Page 20: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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. ...

Page 21: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012 www.consol.de 21

Demo: „Login und Logout“ – der erste Sahi-Testcase

Presenter
Presentation Notes
LIVE-Demo1: login_logout.sah zeige Controller _link(„Anmelden“) – Assert – Highlight - Click Login - Prüfe Username, Währung - Logout Spiele Step-by-step ab Play zeige Script! Momentan hat das mit Nagios-Monitoring noch nichts zu tun. Idee von gerhard aufegriffen => Konzept namens sahi2omd, nun vorstellen
Page 22: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Presenter
Presentation Notes
Basiert auf Konzept von Gerhard, vorletzter Arbeitgeber / im Rahmen eines Consol-Projektes Modularisierung: alles in nagios.inc ! Nagiosierung = Performancedaten, möglichst immer definierter Ausstieg, gute Bedienbarkeit aus Sicht des Nagios-Anwenders. Möchte auf DB-Modus eingehen ___END: Wie siehts konkret aus?
Page 23: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Page 24: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Page 25: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

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

Page 26: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012 www.consol.de 26

Fallbeispiel / Live-Demo2: „OXID Functionality“

Presenter
Presentation Notes
kurz zeigen und erklären: Suite, 2x Cases, Bat AUSFÜHREN Dann Suite & Cases besprechen - .bat-Datei zum Start - Thruk Status besprechen - Output - Perfdaten - Fehler provozieren: 1x link falsch bei Lieferadresse, Assert am Schluss falsch bei Bestellung PhantomJS: NSCA-Tests laufen lassen 2 Threads laufen lassen -> Taskmanager
Page 27: End2End-Monitoring von Webapplikationen mit Sahi und … · Tests außerhalb des Browserinhaltes ( AutoIt) Browser automation: \爀稀甀 瘀椀攀氀攀 吀礀瀀攀渀 尨Firefox,

22.10.2012 www.consol.de 27

Danke für die Aufmerksamkeit!

Icons: http://artdesigner.lv http://spassfieber.de