SlideShare ist ein Scribd-Unternehmen logo
Windows Desktop Application Monitoring
mit AutoIt
Sebastian Lederer
dass IT GmbH
slederer@dass-it.de
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
OSMC 2010 | Windows Desktop Application Monitoring mit Autoit by Sebastian Lederer
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 Systemmanagement
4000 Linux Desktops
250 Standorte
Zentral verwaltet mit
nur 3 Servern
nur 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 GmbH
Händelstr. 25-29
50674 Köln
Telefon: 0221 3565666-0
Fax: 0221 3565666-10
Email: info@dass-it.de
Web: http://www.dass-it.de
Maßgeschneiderte
Linux und
Open Source
Lösungen

Weitere ähnliche Inhalte

Ähnlich wie OSMC 2010 | Windows Desktop Application Monitoring mit Autoit by Sebastian Lederer

Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Gregor Biswanger
 
Chatbots bauen mit dem Microsoft Bot Framework
Chatbots bauen mit dem Microsoft Bot FrameworkChatbots bauen mit dem Microsoft Bot Framework
Chatbots bauen mit dem Microsoft Bot Framework
Jens Siebert
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
Ulrich Krause
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
André Krämer
 
FileMaker 14 Launch Event @ Digicomp
FileMaker 14 Launch Event @ DigicompFileMaker 14 Launch Event @ Digicomp
FileMaker 14 Launch Event @ Digicomp
Digicomp Academy AG
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Andreas Schreiber
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
Christoph Adler
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007
Jürg Stuker
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft AG
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
 
Einführung in Windows Presentation Foundation
Einführung in Windows Presentation FoundationEinführung in Windows Presentation Foundation
Einführung in Windows Presentation Foundation
chmoser79
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
Thomas Wilhelm Wiefel
 
Automatisierung von Windows-Anwendungen
Automatisierung von Windows-AnwendungenAutomatisierung von Windows-Anwendungen
Automatisierung von Windows-Anwendungen
Andreas Schreiber
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
Jürg Stuker
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
Ralf Schwoebel
 
Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009
greenrobot
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
brandts
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
Ulrich Krause
 
Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
Oliver Busse
 

Ähnlich wie OSMC 2010 | Windows Desktop Application Monitoring mit Autoit by Sebastian Lederer (20)

Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Chatbots bauen mit dem Microsoft Bot Framework
Chatbots bauen mit dem Microsoft Bot FrameworkChatbots bauen mit dem Microsoft Bot Framework
Chatbots bauen mit dem Microsoft Bot Framework
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
FileMaker 14 Launch Event @ Digicomp
FileMaker 14 Launch Event @ DigicompFileMaker 14 Launch Event @ Digicomp
FileMaker 14 Launch Event @ Digicomp
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 
Top 10 Internet Trends 2007
Top 10 Internet Trends 2007Top 10 Internet Trends 2007
Top 10 Internet Trends 2007
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus Entwicklersicht
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
Einführung in Windows Presentation Foundation
Einführung in Windows Presentation FoundationEinführung in Windows Presentation Foundation
Einführung in Windows Presentation Foundation
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
Automatisierung von Windows-Anwendungen
Automatisierung von Windows-AnwendungenAutomatisierung von Windows-Anwendungen
Automatisierung von Windows-Anwendungen
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009Android Entwicklung GTUG München 2009
Android Entwicklung GTUG München 2009
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
 

OSMC 2010 | Windows Desktop Application Monitoring mit Autoit by Sebastian Lederer

  • 1. Windows Desktop Application Monitoring mit AutoIt Sebastian Lederer dass IT GmbH slederer@dass-it.de
  • 2. 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
  • 4. 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
  • 8. OSS Systemmanagement 4000 Linux Desktops 250 Standorte Zentral verwaltet mit nur 3 Servern nur 3 Administratoren
  • 9. 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
  • 10. dass IT & Monitoring
  • 11. 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!
  • 12. 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
  • 13. 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
  • 14. AutoIt-Beispiel: Notepad Programm starten Fenster finden Tastendrücke senden Run("notepad.exe") WinWaitActive("Unbenannt - Editor") Send("Irgendein Text")
  • 15. AutoIt Skriptsprache Funktionen Variablen Schleifen Func DoSomething($parameter) ... EndFunc $var = 1 $a = $var + 10 $title = "Fenster 1" While $var <> 0 ... Wend
  • 16. AutoIt GUI-Programmierung Einfache Message- Boxen oder auch komplexere GUIs MsgBox(1,"Message Box","Hello World!“)
  • 17. 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}")
  • 19. 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
  • 20. Performance-Messung Timing-Funktionen $start=TimerInit() # in milliseconds DoSomething() $delta = TimerDiff($start) FileWriteLine("result.txt", $delta)
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. Kontakt dass IT GmbH Händelstr. 25-29 50674 Köln Telefon: 0221 3565666-0 Fax: 0221 3565666-10 Email: info@dass-it.de Web: http://www.dass-it.de Maßgeschneiderte Linux und Open Source Lösungen