Unterstützungstool für automatisiertes Testen

Das ist ein Unterstützungstool für automatisiertes Testen von verschiedenen (meist selbstentwickelten) Applikationen. Es ist sicherzustellen, daß sich Änderungen am Programmcode (z.B. Bugfixes, Neue Funktionen, ...) nicht negativ auf die bestehende Funktionalität auswirken. Dazu wird ein Testscript erstellt das folgende Schritte automatisch ausführt:

Der Test kann dann mit wenig Zeitaufwand automatisch beliebig oft ausgeführt werden. Zur Durchführung des Tests ist dann niemand mehr erforderlich, der die Funktionalität kennt und das Programm bedienen kann.

Mit diesem Programm lassen sich beliebige andere Applikationen fernbedienen. Unter anderem lassen sich Maus- und Tastatureingaben simulieren, Prozesse starten und Fenster prüfen. (siehe Beispiel: Notepad fernbedienen)

Nach ernüchternden Experimenten mit verschiedenen Macrorecordern fiel der Entschluß leicht ein eigenes Tool für diesen Zweck zu entwickeln. (siehe Beispiel: Notepad fernbedienen) (Bei dieser Gelegenheit konnte ich ausserdem Erfahrungen mit Setupprojekten unter Visual Studio 2005 und mit dem HTML Help Workshop von Microsoft sammeln.)
Nachfolgend einige Vorteile gegenüber Macrorecordern:

Screenshot Screenshot Help

Übersicht RemoteApp

Mit diesem Programm lassen sich beliebige andere Applikationen fernbedienen. (siehe Beispiel: Notepad fernbedienen)

Das ist ein Unterstützungstool für automatisiertes Testen von verschiedenen (meist selbstentwickelten) Applikationen. Es ist sicherzustellen, daß sich Änderungen am Programmcode (z.B. Bugfixes, Neue Funktionen, ...) nicht negativ auf die bestehende Funktionalität auswirken. Dazu wird ein Testscript erstellt das folgende Schritte automatisch ausführt:

Der Test kann dann mit wenig Zeitaufwand automatisch beliebig oft ausgeführt werden. Zur Durchführung des Tests ist dann niemand mehr erforderlich, der die Funktionalität kennt und das Programm bedienen kann.

Mit diesem Programm lassen sich beliebige andere Applikationen fernbedienen. Unter anderem lassen sich Maus- und Tastatureingaben simulieren, Prozesse starten und Fenster prüfen. (siehe Beispiel: Notepad fernbedienen)
Nachfolgend einige Vorteile gegenüber Macrorecordern:

Der prinzipielle Ablauf ist folgender:

Die einzelnen Testschritte werden von oben nach unten abgearbeitet.
Die Aktionen der einzelnen Schritte werden in der Reihenfolge von Step 1 - Step 5 durchgeführt - fehlerhafte Schritte können auch ignoriert werden. Standardmäßig wird bei Auftreten eines Fehlers abgebrochen. (Selbstverständlich nur falls eine Aktion gewünscht ist.)
Es wird eine Datei erzeugt die den gleichen Namen trägt wie die Macrodatei mit der zusälichen Endung '.log'.

Aufruf über Kommandozeilenparameter:

Wird beim Aufruf ein Macrofile mit angegeben wird dieses automatisch ausgeführt.
Bei zusätzlicher Angabe von '-close' beendet sich das Programm anschliesend.
Mit der Angabe '-showerror' beendet sich das Programm beim Auftreten von Fehlern nicht.
Der Rückgabewert kann abgefragt werden.

Beispielscript 'notepad.bat':

cls
@echo off
echo *** demo batch which creates a file named 'hello.txt' with notepad ***

RemoteApp.exe -close -showerror notepad.mac
if errorlevel 1 goto :error

echo *** OK ***
goto :ende

:error
echo "** ERROR ***

:ende
echo test finished!
pause

Editieren und Ausführen von Testschritten

Über die rechte Buttonleiste können Einträge angelegt, gelöscht und verschoben werden. Über die Steuerelemente unten werden die Einstellungen für den aktuell ausgewählten Schritt vorgenommen. Die Reihenfolge der Schritte ist fest vorgegeben (Step 1 - Step 6). Ist eine andere Reihenfolge nötig kann dies durch aufteilen in mehrere Schritte erfolgen. Alle Schritte können einzeln aktiviert und deaktiviert werden. Aktivierte Schritte werden farblich hervorgehoben. Alle Abweichungen von den Standardeinstellungen werden farblich hervorgehoben. Eine Beschreibung des Testschrittes kann erfolgen. 'ignore error' setzt die Testausführung im Fehlerfall fort. Häufig verwendete Namen und Nummern (z.B. Programmname und -version) sollten als Define festgelegt werden , damit sie später leichter geändert werden können.

Editieren:

Ausführen:

Step 1: Starten von Applikationen

Eine Applikation kann mit den gewünschten Parametern gestartet werden. Durch anwählen von 'wait on exit' wird gewartet bis die Applikation beendet ist. 'wait for exit' hält die automatische Testausführung so lange an bis der Proze&szli; bendet ist (z.B. durch den Benutzer). Proze&szli, so 'wait after' gibt eine Zeit in Millisekunden an die nach dem Beenden des Prozesses gewartet wird.

Step1

Step 2: Prüfen/Beenden von Fenstertitel und gestarteter Anwendung

Ist ein Fenstertitel oder ein Prozessname eingetragen wird abgebrochen falls dieser nicht aktiv ist. Eine Liste der aktuellen fenster und Prozesse kann über die beiden Button angezeigt werden. Alternativ kann der Proze&szli; auch beendet werden.

Step2
proclist

Step 3: Maus Aktionen

Hier können alle erdenklichen Mausaktionen vorgenommen werden. Zu Ermittlung der gewünschten Mausposition bewegen Sie den Cursor an die gewünschte Stelle und drücken Sie die '0' auf dem Ziffernblock der Tastatur oder Tragen Sie die Koordinaten von Hand ein.

Step3

Step 4: Tastatur Aktionen

Hier können Tastendrücke simuliert werden. Einfach den gewünschten Text eingeben. Spezielle Tasten können mit dem Button 'insert special key' eingefügt werden. Achtung: alle Arten von Klammern sowie '^', '+' und '%' haben besondere Bedeutung.

Step4

Step 5: Datei Aktionen

Hier können Dateien gelöscht oder kopiert werden. Es kann auch geprüft werden ob eine bestimmte Datei vorhanden ist.

Step5

Step 6: Clipboard Aktionen

Hier kann der Inhalt des Clipboards gesetzt oder verglichen werden.

Step6

Beispiel: Notepad fernbedienen

In diesem Beispiel wird der Windowseditor Notepad gestartet und eine Datei mit dem Inhalt "hello world" erstellt.

Notepad Example