Sakuli 
End2End-Monitoring 
Simon Meggle 
21.05.2014
AGENDA 
• Begriff "End2End-Monitoring" 
• die Situation und ihre Herausforderung 
• Funktionsweise von Sahi/Sikuli 
• Die ...
Begriff "End2End-Monitoring" 
• Business-kritische Applikationen bestehen oft aus einer Vielzahl an Komponenten 
• Applika...
die Situation und ihre Herausforderung 
• viele frei verfügbare E2E-Tools 
• Grenzen 
• zu speziell 
• Betriebssystem-spez...
Funktionsweise von Sahi 
• Was ist/kann Sahi? 
ü entwickelt von Narayan Raman (Indien) 
ü „Web Automation and Testing To...
Funktionsweise von Sahi 
• Sahi wird als Proxy zwischen Browser und Server geschaltet 
• Aufzeichnung aller weitergeleitet...
Situation und Herausforderung 
21.05.2014 www.consol.de 
7 
• viele frei verfügbare E2E-Tools 
• Grenzen 
• zu speziell (B...
Funktionsweise von Sikuli 
• Sikuli kann alles sehen und steuern, was der User sieht und mit Maus und Tastatur 
21.05.2014...
Die Tools und ihre Stärken im Vergleich 
1) 
3) 2) 
4) 
21.05.2014 www.consol.de 
9 
100% Web 
Web & "off-web" 
GUI-Tests ...
Die Tools und ihre Stärken im Vergleich 
1) 
3) 2) 
4) 
Sakuli 
21.05.2014 www.consol.de 
10 
100% Web 
Web & "off-web" 
G...
Aus zwei mach eins: Sakuli = Sahi + Sikuli 
"off-web" "web" 
API 
API 
21.05.2014 www.consol.de 
11 
Test 
Case 
SAKULI 
•...
Architektur von Sakuli 
"off-web" "web" 
API 
API 
Test 
Case 
SAKULI 
MySQL Result DB" 
OMD! Sakuli Client! 
21.05.2014 1...
Live-Demo 
• Aufbau von Sakuli-Scripts 
• Testcase: eShop: Bestellung + Bestellbestätigung drucken 
• Zusammenspiel von Sa...
Ausblick: weitere geplante Features 
21.05.2014 www.consol.de 
14 
• Headless Execution 
• Linux: xvfb 
• Windows: ? 
• Au...
Ausblick: Queue-basierte Architektur (Release 2) 
21.05.2014 www.consol.de 
15 
Scheduler 
Server/Scheduler 
• mit Web-Obe...
Ausblick: Queue-basierte Architektur (Release 2) 
21.05.2014 www.consol.de 
16 
Scheduler 
Q1" Q2" Q3" Q4" 
Worker 
1 
Wor...
Ausblick: Queue-basierte Architektur (Release 2) 
21.05.2014 www.consol.de 
17 
Scheduler 
Q1" Q2" Q3" Q4" 
Worker 
1 
Wor...
Ausblick: Queue-basierte Architektur (Release 2) 
21.05.2014 www.consol.de 
18 
Scheduler 
Q1" Q2" Q3" Q4" 
Worker 
1 
Wor...
Download 
https://github.com/ConSol/sakuli 
21.05.2014 www.consol.de 
19
Vielen Dank für die Aufmerksamkeit! 
Q&A 
21.05.2014 20 www.consol.de
Nächste SlideShare
Wird geladen in …5
×

20140520sakulimmws 140701044739-phpapp02

384 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

20140520sakulimmws 140701044739-phpapp02

  1. 1. Sakuli End2End-Monitoring Simon Meggle 21.05.2014
  2. 2. 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 2 www.consol.de
  3. 3. 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 21.05.2014 www.consol.de 3
  4. 4. 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) 21.05.2014 www.consol.de 4 ?
  5. 5. 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 5 www.consol.de
  6. 6. Funktionsweise von Sahi • Sahi wird als Proxy zwischen Browser und Server geschaltet • Aufzeichnung aller weitergeleiteten Requests in SahiScript • Wiedergabe durch Injizieren der SahiScripts in den Browser Browser Sahi-Prozess localhost:9999 Sahi Test-Host Webserver HTTP Request/Response Testcase 21.05.2014 6 www.consol.de
  7. 7. Situation und Herausforderung 21.05.2014 www.consol.de 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. 8. Funktionsweise von Sikuli • Sikuli kann alles sehen und steuern, was der User sieht und mit Maus und Tastatur 21.05.2014 www.consol.de 8 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. 9. Die Tools und ihre Stärken im Vergleich 1) 3) 2) 4) 21.05.2014 www.consol.de 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...)
  10. 10. Die Tools und ihre Stärken im Vergleich 1) 3) 2) 4) Sakuli 21.05.2014 www.consol.de 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...)
  11. 11. Aus zwei mach eins: Sakuli = Sahi + Sikuli "off-web" "web" API API 21.05.2014 www.consol.de 11 Test Case 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. 12. Architektur von Sakuli "off-web" "web" API API Test Case SAKULI MySQL Result DB" OMD! Sakuli Client! 21.05.2014 12 www.consol.de
  13. 13. Live-Demo • 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... 21.05.2014 www.consol.de 13 • Sakuli "from scratch"
  14. 14. Ausblick: weitere geplante Features 21.05.2014 www.consol.de 14 • Headless Execution • Linux: xvfb • Windows: ? • Aufzeichnung der Testabläufe als Film • Fehlerdokumentation • Debugging • Multi-Wait • Sakuli als Integration Test Tool • [Dein Vorschlag]
  15. 15. Ausblick: Queue-basierte Architektur (Release 2) 21.05.2014 www.consol.de 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. 16. Ausblick: Queue-basierte Architektur (Release 2) 21.05.2014 www.consol.de 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. 17. Ausblick: Queue-basierte Architektur (Release 2) 21.05.2014 www.consol.de 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. 18. Ausblick: Queue-basierte Architektur (Release 2) 21.05.2014 www.consol.de 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. 19. Download https://github.com/ConSol/sakuli 21.05.2014 www.consol.de 19
  20. 20. Vielen Dank für die Aufmerksamkeit! Q&A 21.05.2014 20 www.consol.de

×