20140520sakulimmws 140701044739-phpapp02

333 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
333
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

×