Upload
doanque
View
222
Download
1
Embed Size (px)
Citation preview
Werbeblock
End-To-End-Monitoring: Motivation
Was ist AutoIt?
Wie funktioniert GUI-Skripting unter Windows?
Auto-It-Skriptsprache
Beispiele
Was funktioniert nicht?
Zeitmessung
Fehler erkennen
Ausblick: Webanwendungen und Webservices
Agenda
Die Gründer: Ehemalige Senior Consultants der Suse Linux AG
Gegründet: Anfang 2004 als GmbH
Von Anfang an bis heute ausschließlich Eigenkapital
Von Anfang an profitabel
Organisches Wachstum
2010: 8 Mitarbeiter
Geschäftsfelder rund um Open Source:
Consulting
Support
Maßgeschneiderte Anpassungen und Entwicklung
Produktverkauf
Fakten
Zertifizierungen
Partner
Referenzkunden
OSS Systemmanagement4000 Linux Desktops 250 StandorteZentral verwaltet mitnur 3 Servernnur 3 Administratoren
Erstes Nagios Referenzprojekt bei Verpoorten 2004:http://www.dass-it.de/docs/verpoorten_nagios.pdf
Seit 2006 GroundWork OpenSource Monitoring Partner
GroundWork: Basiert auf Nagios
Eigene WebGUI zur Konfiguration
Drill-Down Statusviewer
Dassmonarch von dass IT: Perl API zur skriptgesteuerten Konfigurationsautomatisierung seit GW 6.0 Produktbestandteil
dass IT Referenzen mit GroundWork u.a.:
Daimler Fleetboard
INFOnline
dass IT & Monitoring
dass IT & Monitoring
End-To-End-Monitoring
Probleme beim klassischen Monitoring
Was tun?
Protokolle, Prozesse, Ports – für den Anwender zählt nur die Anwendung!
Monitoring von Prozessen und Ports prüft nur die Serverseite und eventuell nur einen Bruchteil der Serverfunktionalität
Proprietäre Protokolle lassen sich schwer prüfen
auch bei Standard-Protokollen wie HTTP lässt sich die Applikationslogik nur schwer testen
Clientseite fehlt völlig
die Anwendung muss aus Nutzersicht getestet werden
End-To-End-Monitoring per GUI-Skripting
Aufwändig
Applikationsabhängig
Fehleranfällig
trotzdem: oft nützlich und manchmal notwendig!
End-To-End-Monitoring per GUI-Skripting
Was ist AutoIt? einfache Skriptsprache zur Fernsteuerung von Windows-Applikationen
Variablen, Funktionen, Schleifen
BASIC-ähnlich
Freeware (Donation-Ware, nicht OSS!)
http://www.autoitscript.com
aktive Community
Skripte können compiliert werden
Funktionsumfang dynamisch erweiterbar
viele Zusatzmodule
enthält Funktionen zum Erstellen eigener GUIs
GUI-Skripting unter Windows
Wie funktioniert's?
Events
Messages
Controls
GUI-Anwendungen unter Windows erhalten vom Betriebssystem Events für Tastatureingaben, Mausklicks etc.
Events werden über den Windows-Message-Mechanismus versendet
derartige Messages können auch von einer Anwendung zur anderen geschickt werden
der Empfänger des Events kann nicht unterscheiden, ob das Event vom System oder einer anderen Anwendung kommt
Windows definiert eine Reihe von Standard-Messages für Standard-GUI-Elemente (Controls)
Grundlage für Fernsteuerung von Anwendungen
AutoIt-Beispiel: Notepad
Programm starten
Fenster finden
Tastendrücke senden
Run("notepad.exe")
WinWaitActive("Unbenannt - Editor")
Send("Irgendein Text")
AutoIt Skriptsprache
Funktionen
Variablen
Schleifen
Func DoSomething($parameter) ...EndFunc
$var = 1$a = $var + 10$title = "Fenster 1"
While $var <> 0 ...Wend
AutoIt GUI-Programmierung
Einfache Message-Boxen
oder auch komplexere GUIs
MsgBox(1,"Message Box","Hello World!“)
AutoIt-Beispiel: Menüs fernsteuern
kennen wir schon
Menüauswahl
Spezielle Tasten
Run("notepad.exe")WinWaitActive("Unbenannt - Editor")Send("Irgendein Text")
WinMenuSelectItem("Unbenannt - Editor", "", "&Datei", "Speichern &unter..." )
WinWaitActive("Speichern unter")
Send("test.txt")Send("{ENTER}")
AutoIt Window Info
Fensterklassen
Inhaltstext
Control-IDs
In der Praxis viele Probleme beim Fernsteuern
Was funktioniert nicht?
Die Konsequenz
Viele Anwendungen nutzen eigene GUI-Bibliotheken und eigene, nicht standardkonforme Controls
Für AutoIt nur ein einziges Control sichtbar
Beispiele:
Mozilla-Applikationen (Firefox, Thunderbird, Sunbird)
OpenOffice
SAPGUI
Anwendungen sind unsauber programmiert und reagieren nicht erwartungsgemäß auf Events
Beispiele:
VMWare VirtualCenter
Beschränkung auf Tastendrücke/Mausklicks
Trial-and-Error
Performance-Messung
Timing-Funktionen $start=TimerInit() # in milliseconds
DoSomething()
$delta = TimerDiff($start)
FileWriteLine("result.txt", $delta)
Prüfen auf Fehler
Timeouts
Prüfen von Inhalten
$result=WinWait("Notepad","",60)if $result==0 then
ReportError()else
ReportOk()endif
$t = ""while $t <> "expected text" $t = ControlGetText($window, "",
$control) Sleep(1000)wend
Anbindung an das Monitoring-System
Wer ruft wen auf? Agent ruft AutoIt auf
AutoIt ruft ein weiteres Programm mit Parametern auf
AutoIt ruft eine Funktion aus einer DLL auf
Performancemessung von Webanwendungen
Funktioniert's?
Der bessere Weg
AutoIt kann prinzipiell auch Webbrowser fernsteuern
Ansteuern von Eingabefeldern, Buttons schwierig, da keine Standard-Controls, wechselnde Ids
Möglich, aber nicht zu empfehlen
Besser spezielle Tools nutzen: Selenium
Monitoring mit Selenium
IDE Plugin für Firefox
Record and replay von Websitzungen
Eigene Scriptsprache
Performance Messungen
Fernsteuerbar
In eigene Nagios Plugins integrierbar
Ermöglicht Monitoring kompletter Webapplikationen
Bis auf …
Webapplikationen
Monitoring von SOAP, REST u.a. Webservices mit soap UI
GUI zur Definition von Testcases und ganzen Testszenarien
WSDL Browser
Testgerüst automatisch aus WSDL erzeugen
Ablauf interaktiv oder ferngesteuert per Skript
Performance Messungen
Einbindung in eigene Nagios Plugins
Daimler Fleetboard überwacht die eigene SOAP Schnittstelle mit soap UI und GroundWork
Webservices
Kontakt
dass IT GmbHHändelstr. 25-2950674 Köln
Telefon: 0221 3565666-0
Fax: 0221 3565666-10
Email: [email protected]
Web: http://www.dass-it.de
Maßgeschneiderte Linux und Open Source Lösungen