21.05.2014
Sakuli
End2End-Monitoring
Simon Meggle
21.05.2014 www.consol.de2
AGENDA
•  Begriff "End2End-Monitoring"
•  die Situation und ihre Herausforderung
•  Funktionsweise von Sahi/Sikuli
•  Die Tools und ihre Stärken im Vergleich
•  Aus zwei mach eins: Sakuli = Sahi + Sikuli
•  Architektur von Sakuli
•  Live-Demos
•  Ausblick
•  geplante Features
•  Queue-basierte Architektur (Release 2)
•  Download
21.05.2014 www.consol.de
Begriff "End2End-Monitoring"
•  Business-kritische Applikationen bestehen oft aus einer Vielzahl an Komponenten
•  Applikations-Qualität nur am Ende der Funktionskette messbar
=> Monitoring aus Sicht des Anwenders durch User-Simulation
3
21.05.2014 www.consol.de
die Situation und ihre Herausforderung
•  viele frei verfügbare E2E-Tools
•  Grenzen
•  zu speziell
•  Betriebssystem-spezifisch
•  zu generisch
•  zu wenig an der Realität
•  Bisher: Sahi2OMD (vorgestellt auf der OSMC 2013)
4
?
21.05.2014 www.consol.de5
Funktionsweise von Sahi
•  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 Funktionen, wie z.B.:
ü  intelligente Objekt-Adressierung auch über Frames/iFrames hinweg (kein XPath)
ü  Funktionen für File/DB-Zugriff
ü  Batch Mode & Multi-Threaded Playback
ü  Sahi erkennt selbst, wenn Seiten/AJAX-Requests fertig geladen sind.
ü  Java-API
ü  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 außerhalb des DOMs liegt (z.B. Flash-Inhalte, Java-Applets)
-  Tests außerhalb des Browserinhaltes
http://sahi.co.in/
21.05.2014 www.consol.de6
localhost:9999
Sahi Test-Host
Webserver
Funktionsweise von Sahi
HTTP Request/Response
Browser Sahi-Prozess
•  Sahi wird als Proxy zwischen Browser und Server geschaltet
•  Aufzeichnung aller weitergeleiteten Requests in SahiScript
•  Wiedergabe durch Injizieren der SahiScripts in den Browser
Testcase
21.05.2014 www.consol.de
Situation und Herausforderung
7
•  viele frei verfügbare E2E-Tools
•  Grenzen
•  zu speziell (Bsp. PIN-Abfrage in Webbrowser)
•  abhängig vom Betriebssystem
•  zu generisch
•  zu wenig an der Realität (Bsp. Test auf Protokoll-Ebene)
•  Bisher: Sahi2OMD (OSMC 2013)
•  End2End Web-Tests
•  Hürden
•  Browserdialoge
•  Java-Applets, Flash, ...
•  Kundenwunsch: GUI-Monitoring
Herausforderung:
Kompensation der Schwachstellen von Sahi durch zweites Tool
21.05.2014 www.consol.de
Funktionsweise von Sikuli
8
•  Sikuli kann alles sehen und steuern, was der User sieht und mit Maus und Tastatur
steuern kann
•  Kern-Komponenten:
•  java.awt.Robot zur Steuerung von Maus/Tastaturevents
•  OpenCV Engine zur Erkennung von Bildmustern
•  Screenshots werden auf dem Bildschirm lokalisiert => Region
•  Region-Objekte erlauben Aktionen wie click(), type(), etc...
•  Texterkennung (OCR), experimental
•  auf jeder Plattform verfügbar
•  Open Source (MIT)
21.05.2014 www.consol.de
Die Tools und ihre Stärken im Vergleich
9
100% Web
Web & "off-web"
GUI-Tests (off-Browser content)
1) theoretisch möglich; im Vergleich zu Sahi jedoch viel zu aufwändig (und Unsinn!)
2) nicht möglich; Java, Flash, PIN-Dialoge etc. sind für Sahi nicht "sichtbar", da keine Web-Inhalte
3) theoretisch möglich (siehe 1); bestenfalls jedoch "Notlösung"
4) Sahi kennt nur den Content des Browser-Canvas (den aber gut...)
1)
3) 2)
4)
21.05.2014 www.consol.de
Die Tools und ihre Stärken im Vergleich
10
100% Web
Web & "off-web"
GUI-Tests (off-Browser content)
1) theoretisch möglich; im Vergleich zu Sahi jedoch viel zu aufwändig (und Unsinn!)
2) nicht möglich; Java, Flash, PIN-Dialoge etc. sind für Sahi nicht "sichtbar", da keine Web-Inhalte
3) theoretisch möglich (siehe 1); bestenfalls jedoch "Notlösung"
4) Sahi kennt nur den Content des Browser-Canvas (den aber gut...)
1)
3) 2)
4)
Sakuli
21.05.2014 www.consol.de
Aus zwei mach eins: Sakuli = Sahi + Sikuli
11
Test	
  Case	
  
API	
  API	
  
"web""off-web"
SAKULI	
  
•  entstanden 2013 aus "sahi2OMD" (-> OSMC 2012)"
=> Gewinnung von SIEMENS als POC-Sponsor!
•  Java-Architektur: Steuern von Sahi und Sikuli über
deren Java-API"
•  Kapselung der Funktionsaufrufe beider Tools in
JavaScript"
•  einheitliche Handhabung"
•  Erweiterung bestehender Funktionen"
•  seamless integration: Sahi- und Sikuli-
Funktionen sind im Test beliebig mischbar"
•  Sakuli stellt alle Backend-Funktionen bereit
(Initialisierung, Zugriff auf die Result-DB,
Erstellen von Screenshots bei Exceptions,
Logging, ...) "
•  Test-Cases in JavaScript-Syntax: Keine Java-
Kenntnisse zur Test-Erstellung erforderlich"
21.05.2014 www.consol.de
12
Architektur von Sakuli
Test	
  Case	
  
API	
  API	
  
"web""off-web"
SAKULI	
  
MySQL Result DB"
OMD! Sakuli Client!
21.05.2014 www.consol.de
Live-Demo
13
•  Aufbau von Sakuli-Scripts
•  Testcase: eShop: Bestellung + Bestellbestätigung drucken
•  Zusammenspiel von Sahi und Sikuli
•  check_mysql_health – Custom "Sakuli" Mode
•  Performancedaten – Custom PNP4Nagios Template
•  wenns kracht...
•  Sakuli "from scratch"
21.05.2014 www.consol.de
Ausblick: weitere geplante Features
14
•  Headless Execution
•  Linux: xvfb
•  Windows: ?
•  Aufzeichnung der Testabläufe als Film
•  Fehlerdokumentation
•  Debugging
•  Multi-Wait
•  Sakuli als Integration Test Tool
•  [Dein Vorschlag]
21.05.2014 www.consol.de
Ausblick: Queue-basierte Architektur (Release 2)
15
Scheduler	
  
Server/Scheduler
•  mit Web-Oberfläche zur Verwaltung incl.
JavaScript-Editor
•  stellt Queues (gruppiert nach OS, Browser o.ä.)
•  legt Test-Jobs in die entspr. Queues
•  Test-Jobs enthalten alle zur Ausführung
notwendigen Dateien
21.05.2014 www.consol.de
Ausblick: Queue-basierte Architektur (Release 2)
16
Scheduler	
  
Q1" Q2" Q3" Q4"
Worker	
  1	
  
Worker	
  2	
  
Worker	
  3	
  
Worker
•  ist in einer/mehreren Queue(s) registriert
•  entnimmt Job aus der Queue und führt ihn aus
•  speichert das Ergebnis in einer Result-Queue
Results"
Worker	
  4	
  
21.05.2014 www.consol.de
Ausblick: Queue-basierte Architektur (Release 2)
17
Scheduler	
  
Q1" Q2" Q3" Q4"
Worker	
  1	
  
Worker	
  2	
  
Worker	
  3	
  
Server/Scheduler
•  liest die Result-Queue und speichert die
Ergebnisse in der DB / sendet sie per GearmanD
OMD
•  prüft Result-Datenbank mit check_mysql_health
(Sakuli-Mode)
Results"
Worker	
  4	
  
21.05.2014 www.consol.de
Ausblick: Queue-basierte Architektur (Release 2)
18
Scheduler	
  
Q1" Q2" Q3" Q4"
Worker	
  1	
  
Worker	
  2	
  
Worker	
  3	
  
ü  Lastverteilung
ü  Erhöhung der Ausfallsicherheit
ü  System "balanciert" sich selbst aus
ü  Clients können zur Wartung inaktiv
geschalten werden,
die Messungen verteilen sich auf andere
Nodes
ü  einfache Skalierung durch Hinzufügen von
Workern
ü  Integration des Sakuli-Schedulers in OMD
Results"
Worker	
  4	
  
21.05.2014 www.consol.de
Download
19
https://github.com/ConSol/sakuli
21.05.2014 www.consol.de20
Vielen Dank für die Aufmerksamkeit!
Q&A

Simon Meggle - Open Source End2End Monitoring with Sakuli and Nagios

  • 1.
  • 2.
    21.05.2014 www.consol.de2 AGENDA •  Begriff"End2End-Monitoring" •  die Situation und ihre Herausforderung •  Funktionsweise von Sahi/Sikuli •  Die Tools und ihre Stärken im Vergleich •  Aus zwei mach eins: Sakuli = Sahi + Sikuli •  Architektur von Sakuli •  Live-Demos •  Ausblick •  geplante Features •  Queue-basierte Architektur (Release 2) •  Download
  • 3.
    21.05.2014 www.consol.de Begriff "End2End-Monitoring" • Business-kritische Applikationen bestehen oft aus einer Vielzahl an Komponenten •  Applikations-Qualität nur am Ende der Funktionskette messbar => Monitoring aus Sicht des Anwenders durch User-Simulation 3
  • 4.
    21.05.2014 www.consol.de die Situationund ihre Herausforderung •  viele frei verfügbare E2E-Tools •  Grenzen •  zu speziell •  Betriebssystem-spezifisch •  zu generisch •  zu wenig an der Realität •  Bisher: Sahi2OMD (vorgestellt auf der OSMC 2013) 4 ?
  • 5.
    21.05.2014 www.consol.de5 Funktionsweise vonSahi •  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 Funktionen, wie z.B.: ü  intelligente Objekt-Adressierung auch über Frames/iFrames hinweg (kein XPath) ü  Funktionen für File/DB-Zugriff ü  Batch Mode & Multi-Threaded Playback ü  Sahi erkennt selbst, wenn Seiten/AJAX-Requests fertig geladen sind. ü  Java-API ü  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 außerhalb des DOMs liegt (z.B. Flash-Inhalte, Java-Applets) -  Tests außerhalb des Browserinhaltes http://sahi.co.in/
  • 6.
    21.05.2014 www.consol.de6 localhost:9999 Sahi Test-Host Webserver Funktionsweisevon Sahi HTTP Request/Response Browser Sahi-Prozess •  Sahi wird als Proxy zwischen Browser und Server geschaltet •  Aufzeichnung aller weitergeleiteten Requests in SahiScript •  Wiedergabe durch Injizieren der SahiScripts in den Browser Testcase
  • 7.
    21.05.2014 www.consol.de Situation undHerausforderung 7 •  viele frei verfügbare E2E-Tools •  Grenzen •  zu speziell (Bsp. PIN-Abfrage in Webbrowser) •  abhängig vom Betriebssystem •  zu generisch •  zu wenig an der Realität (Bsp. Test auf Protokoll-Ebene) •  Bisher: Sahi2OMD (OSMC 2013) •  End2End Web-Tests •  Hürden •  Browserdialoge •  Java-Applets, Flash, ... •  Kundenwunsch: GUI-Monitoring Herausforderung: Kompensation der Schwachstellen von Sahi durch zweites Tool
  • 8.
    21.05.2014 www.consol.de Funktionsweise vonSikuli 8 •  Sikuli kann alles sehen und steuern, was der User sieht und mit Maus und Tastatur steuern kann •  Kern-Komponenten: •  java.awt.Robot zur Steuerung von Maus/Tastaturevents •  OpenCV Engine zur Erkennung von Bildmustern •  Screenshots werden auf dem Bildschirm lokalisiert => Region •  Region-Objekte erlauben Aktionen wie click(), type(), etc... •  Texterkennung (OCR), experimental •  auf jeder Plattform verfügbar •  Open Source (MIT)
  • 9.
    21.05.2014 www.consol.de Die Toolsund ihre Stärken im Vergleich 9 100% Web Web & "off-web" GUI-Tests (off-Browser content) 1) theoretisch möglich; im Vergleich zu Sahi jedoch viel zu aufwändig (und Unsinn!) 2) nicht möglich; Java, Flash, PIN-Dialoge etc. sind für Sahi nicht "sichtbar", da keine Web-Inhalte 3) theoretisch möglich (siehe 1); bestenfalls jedoch "Notlösung" 4) Sahi kennt nur den Content des Browser-Canvas (den aber gut...) 1) 3) 2) 4)
  • 10.
    21.05.2014 www.consol.de Die Toolsund ihre Stärken im Vergleich 10 100% Web Web & "off-web" GUI-Tests (off-Browser content) 1) theoretisch möglich; im Vergleich zu Sahi jedoch viel zu aufwändig (und Unsinn!) 2) nicht möglich; Java, Flash, PIN-Dialoge etc. sind für Sahi nicht "sichtbar", da keine Web-Inhalte 3) theoretisch möglich (siehe 1); bestenfalls jedoch "Notlösung" 4) Sahi kennt nur den Content des Browser-Canvas (den aber gut...) 1) 3) 2) 4) Sakuli
  • 11.
    21.05.2014 www.consol.de Aus zweimach eins: Sakuli = Sahi + Sikuli 11 Test  Case   API  API   "web""off-web" SAKULI   •  entstanden 2013 aus "sahi2OMD" (-> OSMC 2012)" => Gewinnung von SIEMENS als POC-Sponsor! •  Java-Architektur: Steuern von Sahi und Sikuli über deren Java-API" •  Kapselung der Funktionsaufrufe beider Tools in JavaScript" •  einheitliche Handhabung" •  Erweiterung bestehender Funktionen" •  seamless integration: Sahi- und Sikuli- Funktionen sind im Test beliebig mischbar" •  Sakuli stellt alle Backend-Funktionen bereit (Initialisierung, Zugriff auf die Result-DB, Erstellen von Screenshots bei Exceptions, Logging, ...) " •  Test-Cases in JavaScript-Syntax: Keine Java- Kenntnisse zur Test-Erstellung erforderlich"
  • 12.
    21.05.2014 www.consol.de 12 Architektur vonSakuli Test  Case   API  API   "web""off-web" SAKULI   MySQL Result DB" OMD! Sakuli Client!
  • 13.
    21.05.2014 www.consol.de Live-Demo 13 •  Aufbauvon Sakuli-Scripts •  Testcase: eShop: Bestellung + Bestellbestätigung drucken •  Zusammenspiel von Sahi und Sikuli •  check_mysql_health – Custom "Sakuli" Mode •  Performancedaten – Custom PNP4Nagios Template •  wenns kracht... •  Sakuli "from scratch"
  • 14.
    21.05.2014 www.consol.de Ausblick: weiteregeplante Features 14 •  Headless Execution •  Linux: xvfb •  Windows: ? •  Aufzeichnung der Testabläufe als Film •  Fehlerdokumentation •  Debugging •  Multi-Wait •  Sakuli als Integration Test Tool •  [Dein Vorschlag]
  • 15.
    21.05.2014 www.consol.de Ausblick: Queue-basierteArchitektur (Release 2) 15 Scheduler   Server/Scheduler •  mit Web-Oberfläche zur Verwaltung incl. JavaScript-Editor •  stellt Queues (gruppiert nach OS, Browser o.ä.) •  legt Test-Jobs in die entspr. Queues •  Test-Jobs enthalten alle zur Ausführung notwendigen Dateien
  • 16.
    21.05.2014 www.consol.de Ausblick: Queue-basierteArchitektur (Release 2) 16 Scheduler   Q1" Q2" Q3" Q4" Worker  1   Worker  2   Worker  3   Worker •  ist in einer/mehreren Queue(s) registriert •  entnimmt Job aus der Queue und führt ihn aus •  speichert das Ergebnis in einer Result-Queue Results" Worker  4  
  • 17.
    21.05.2014 www.consol.de Ausblick: Queue-basierteArchitektur (Release 2) 17 Scheduler   Q1" Q2" Q3" Q4" Worker  1   Worker  2   Worker  3   Server/Scheduler •  liest die Result-Queue und speichert die Ergebnisse in der DB / sendet sie per GearmanD OMD •  prüft Result-Datenbank mit check_mysql_health (Sakuli-Mode) Results" Worker  4  
  • 18.
    21.05.2014 www.consol.de Ausblick: Queue-basierteArchitektur (Release 2) 18 Scheduler   Q1" Q2" Q3" Q4" Worker  1   Worker  2   Worker  3   ü  Lastverteilung ü  Erhöhung der Ausfallsicherheit ü  System "balanciert" sich selbst aus ü  Clients können zur Wartung inaktiv geschalten werden, die Messungen verteilen sich auf andere Nodes ü  einfache Skalierung durch Hinzufügen von Workern ü  Integration des Sakuli-Schedulers in OMD Results" Worker  4  
  • 19.
  • 20.
    21.05.2014 www.consol.de20 Vielen Dankfür die Aufmerksamkeit! Q&A