Beispiel für das Generieren von Testskripts
Aktualisiert: November 2007
In diesem Beispiel wird veranschaulicht, wie Sie Microsoft-UI-Automatisierung Steuerelementmuster und Ereignisse verwenden, um Testskripts für automatisierte Testszenarien zu generieren. Der Testskriptgenerator verfolgt die Interaktion des Benutzers mit der Benutzeroberfläche (user interface, UI) einer Zielanwendung und speichert die relevanten Elemente und Ereignisse.
Die Informationen über ein Element und die zugehörigen Ereignisse werden in einer allgemeinen Datensatzklasse (UIAEventRecord.cs) gespeichert. Die allgemeinen Informationen und das Skript können zur späteren Analyse oder Bearbeitung durch einen Tester als Nur-Text gespeichert werden. Das generierte Skript kann später angewendet werden.
Eine ereignisbasierte Anwendung wie diese unterliegt der Einschränkung, dass sie nicht zwischen Änderungen in der Benutzeroberfläche (user interface, UI) unterscheiden kann, die das Ergebnis einer direkten oder indirekten Benutzereingabe sind. Beispielsweise enthält die Zielanwendung dieses Beispiels drei voneinander abhängige Steuerelemente, und eine Benutzerinteraktion mit einem Steuerelement hat Auswirkungen auf die anderen Steuerelemente.
Warnung
Für die UI-Automatisierung und das automatisierte Testszenario dieses Beispiels ist ein Vertrag zwischen der Anwendung (oder dem Steuerelemententwickler) und einem Tester erforderlich. Mit anderen Worten: Die Fähigkeit, ein generiertes Skript konsistent auszuführen, ist abhängig von einer statischen, berechenbaren Ziel-Benutzeroberfläche. In diesem Zusammenhang sollte die UI-Automatisierung nicht als Lösung für Szenarien betrachtet werden, in denen das Aufzeichnen und spätere Anwenden von Interaktionen mit beliebigen Anwendungen und Steuerelementen erforderlich ist.
Allgemeine Probleme, die das "blinde" Aufzeichnen und Anwenden unmöglich machen, treten auf, wenn Elemente über keinen eindeutigen Bezeichner (z. B. eine AutomationId-Eigenschaft) verfügen, oder wenn die Benutzeroberfläche dynamisch und nicht vorhersehbar ist (z. B. das Dialogfeld Windows Task-Manager, in dem die auf den Registerkarten "Prozesse" oder "Anwendungen" aufgelisteten Elemente vom Systemstatus abhängig sind). In diesen Fällen ist es praktisch unmöglich, beim Anwenden bestimmte Elemente zu finden.
In diesem Beispiel soll nur ein bestimmtes Feature des Windows Presentation Foundation (WPF) veranschaulicht werden, daher werden die für die Anwendungsentwicklung bewährten Methoden nicht befolgt. Ausführliche Informationen über bewährte Methoden bei der Anwendungsentwicklung für Windows Presentation Foundation (WPF) und Microsoft .NET Framework finden Sie unter folgenden Themen:
Eingabehilfen – Bewährte Methoden für Eingabehilfen
Sicherheit – Windows Presentation Foundation-Sicherheit
Lokalisierung – Übersicht über WPF-Globalisierung und -Lokalisierung
Erstellen des Beispiels
Dieses Beispiel besteht aus den folgenden drei Projekten:
ScriptGeneratorClient stellt die Skriptgenerierungsfunktionalität für das Beispiel bereit. Die Zielanwendung wird von der Clientbenutzeroberfläche gestartet.
ScriptGeneratorTarget stellt die Zielbenutzeroberfläche für die Clientanwendungen bereit.
ExecuteScript stellt die Skriptausführungsfunktionalität für das Beispiel bereit. Die Zielanwendung wird von der Clientbenutzeroberfläche gestartet. Dieses Projekt wird manuell ausgeführt, nachdem ein Skript generiert und in die Datei script.cs kopiert wurde.
Installieren Sie das Windows Software Development Kit (SDK) und öffnen Sie dessen Buildumgebungs-Befehlsfenster. Zeigen Sie im Startmenü auf Alle Programme und Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.
Laden Sie das Beispiel, normalerweise aus der Software Development Kit (SDK)-Dokumentation, auf Ihre Festplatte herunter.
Um das Beispiel über das Buildumgebungs-Befehlsfenster zu erstellen, wechseln Sie zum Quellverzeichnis des Beispiels. Geben Sie an der Eingabeaufforderung MSBUILD ein.
Um das Beispiel mit in Microsoft Visual Studio zu erstellen, laden Sie die Projektmappe oder Projektdatei des Beispiels, und drücken Sie STRG+UMSCHALT+B.
Generieren eines Skripts
Um das kompilierte Beispiel über das Buildumgebungs-Befehlsfenster auszuführen, führen Sie die EXE-Datei aus dem Ordner Bin\Debug oder Bin\Release, die unter dem Quellcodeordner des Beispiels enthalten sind, aus.
Um das kompilierte Beispiel in Visual Studio mit Debuggen auszuführen, drücken Sie F5.
Tipp
Dadurch wird die ScriptGenerator-Clientanwendung gestartet. Die Zielanwendung wird vom Client gestartet.
Ausführen eines Skripts
Schließen Sie die Clientanwendung und die Zielanwendung.
Öffnen Sie im ExecuteScript-Projekt die Datei Script.cs.
Markieren Sie den vorhandenen Code, und ersetzen Sie ihn durch Einfügen des generierten Skripts.
Erstellen Sie das ExecuteScript-Projekt, und führen Sie es aus.
Tipp
Dadurch wird die ExecuteScript-Clientanwendung gestartet. Die Zielanwendung wird vom Client gestartet.