Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring:...

26
Windows Desktop Application Monitoring mit AutoIt Sebastian Lederer dass IT GmbH [email protected]

Transcript of Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring:...

Page 1: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

Windows Desktop Application Monitoring mit AutoIt

Sebastian Lederer

dass IT GmbH

[email protected]

Page 2: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 3: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache
Page 4: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 5: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

Zertifizierungen

Page 6: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

Partner

Page 7: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

Referenzkunden

Page 8: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

OSS Systemmanagement4000 Linux Desktops 250 StandorteZentral verwaltet mitnur 3 Servernnur 3 Administratoren

Page 9: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 10: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

dass IT & Monitoring

Page 11: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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!

Page 12: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 13: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 14: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

AutoIt-Beispiel: Notepad

Programm starten

Fenster finden

Tastendrücke senden

Run("notepad.exe")

WinWaitActive("Unbenannt - Editor")

Send("Irgendein Text")

Page 15: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

AutoIt Skriptsprache

Funktionen

Variablen

Schleifen

Func DoSomething($parameter) ...EndFunc

$var = 1$a = $var + 10$title = "Fenster 1"

While $var <> 0 ...Wend

Page 16: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

AutoIt GUI-Programmierung

Einfache Message-Boxen

oder auch komplexere GUIs

MsgBox(1,"Message Box","Hello World!“)

Page 17: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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}")

Page 18: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

AutoIt Window Info

Fensterklassen

Inhaltstext

Control-IDs

Page 19: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 20: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

Performance-Messung

Timing-Funktionen $start=TimerInit() # in milliseconds

DoSomething()

$delta = TimerDiff($start)

FileWriteLine("result.txt", $delta)

Page 21: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 22: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 23: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 24: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 25: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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

Page 26: Sebastian Lederer Windows Desktop Application · PDF fileWerbeblock End-To-End-Monitoring: Motivation Was ist AutoIt? Wie funktioniert GUI-Skripting unter Windows? Auto-It-Skriptsprache

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