Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert: November 2007
In dieser Übersicht wird erläutert, wie Microsoft-UI-Automatisierung als nützliches Framework für den programmgesteuerten Zugriff in Szenarien mit automatisierten Tests verwendet werden kann.
UI-Automatisierung stellt ein einheitliches Objektmodell zur Verfügung, das allen Benutzeroberfläche (user interface, UI)-Frameworks ermöglicht, komplexe, umfangreiche Funktionalität einfach und leicht automatisierbar bereitzustellen.
UI-Automatisierung wurde als Nachfolger von Microsoft Active Accessibility entwickelt. Active Accessibility ist ein vorhandenes Framework, das zum Bereitstellen einer Lösung für den Zugriff auf Steuerelemente und Anwendungen entwickelt wurde. Active Accessibility wurde nicht im Hinblick auf Testautomatisierung entwickelt, obwohl es diese Rolle aufgrund der sehr ähnlichen Anforderungen hinsichtlich Zugriff und Automatisierung übernommen hat. Neben der Bereitstellung von verbesserten Zugriffslösungen wurde UI-Automatisierung insbesondere für stabile Funktionalität bei automatisierten Tests entwickelt. Beispielsweise wird in Active Accessibility eine einzelne Schnittstelle zum Bereitstellen von Benutzeroberflächeninformationen und zum Erfassen der erforderlichen Informationen für AT-Produkte verwendet. In UI-Automatisierung sind die beiden Modelle getrennt.
Sowohl ein Anbieter als auch ein Client müssen UI-Automatisierung implementieren, damit es als automatisiertes Testtool eingesetzt werden kann. Benutzeroberflächenautomatisierungsanbieter sind Anwendungen, wie zum Beispiel Microsoft Word, Excel und andere Anwendungen oder Steuerelemente von Drittanbietern, die auf dem Microsoft Windows-Betriebssystem basieren. Benutzeroberflächenautomatisierungsclients schließen automatisierte Testskripts und Hilfstechnologieanwendungen ein.
Hinweis: |
|---|
In dieser Übersicht sollen die neuen und verbesserten Testfunktionen von UI-Automatisierung hervorgehoben werden. Diese Übersicht ist nicht zur Bereitstellung von Informationen über Zugriffsfunktionen vorgesehen. Zugriffsfunktionen werden nur wenn nötig erläutert. |
Dieses Thema enthält folgende Abschnitte.
- Benutzeroberflächenautomatisierung in einem Anbieter
- Benutzeroberflächenautomatisierung in einem Client
- Verwandte Tools und Technologien
- Sicherheit
- Verwandte Abschnitte
Benutzeroberflächenautomatisierung in einem Anbieter
Zum Automatisieren von Benutzeroberfläche muss der Entwickler einer Anwendung bzw. eines Steuerelements ermitteln, welche Aktionen der Endbenutzer mit standardmäßiger Tastatur- und Mausinteraktion für das Benutzeroberfläche-Objekt ausführen kann.
Nachdem diese wichtigen Aktionen ermittelt wurden, sollten entsprechende UI-AutomatisierungSteuerelementmuster (das heißt, die Steuerelementmuster, die Funktionalität und Verhalten des Benutzeroberfläche-Elements wiederspiegeln) im Steuerelement implementiert werden. Beispielsweise beinhaltet die Interaktion mit einem Kombinationsfeld-Steuerelement (z. B. das Dialogfeld "Ausführen") in der Regel das Erweitern und Reduzieren, um eine Liste von Elementen ein- oder auszublenden, das Auswählen eines Elements aus dieser Liste oder das Hinzufügen eines neuen Werts per Tastatureingabe.
Hinweis: |
|---|
Bei anderen Zugriffsmodellen müssen Entwickler Informationen direkt von einzelnen Schaltflächen, Menüs oder anderen Steuerelementen erfassen. Leider weist jeder Steuerelementtyp viele Varianten mit kleinen Unterschieden auf. Anders ausgedrückt müssen zehn Varianten eines PushButtons, obwohl sie möglicherweise genau gleich funktionieren und den gleichen Zweck erfüllen, alle als eigene Steuerelemente behandelt werden. Es gibt keine Möglichkeit festzustellen, dass diese Steuerelemente über identische Funktionsweisen verfügen. Steuerelementmuster wurden entwickelt, um diese allgemeinen Steuerelementverhaltensweisen darzustellen. Weitere Informationen finden Sie unter Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung. |
Implementieren von Benutzeroberflächenautomatisierung
Wie bereits erwähnt benötigen Testtools und Entwickler ohne das vereinheitlichte, von UI-Automatisierung zur Verfügung gestellte Modell Framework-spezifische Informationen, um Eigenschaften und Verhalten von Steuerelementen in diesem Framework verfügbar zu machen. Da in Windows-Betriebssystemen verschiedene Benutzeroberflächen-Frameworks zum gleichen Zeitpunkt vorhanden sein können, einschließlich Win32, Windows Forms und Windows Presentation Foundation (WPF), kann das Testen mehrerer Anwendungen mit ähnlich scheinenden Steuerelementen eine schwierige Aufgabe sein. In der folgenden Tabelle werden beispielsweise Framework-spezifische Eigenschaftennamen, die zum Abrufen des einem Schaltflächen-Steuerelement zugeordneten Namens (oder Texts) erforderlich sind, und die entsprechende einzelne, gleichwertige UI-Automatisierung-Eigenschaft aufgeführt.
Steuerelementtyp der Benutzeroberflächenautomatisierung |
Benutzeroberflächen-Framework |
Framework-spezifische Eigenschaft |
Benutzeroberflächenautomatisierungs-Eigenschaft |
|---|---|---|---|
Schaltfläche |
Windows Presentation Foundation |
Inhalt |
NameProperty |
Schaltfläche |
Win32 |
Beschriftung |
NameProperty |
Bild |
HTML |
alt |
NameProperty |
Benutzeroberflächenautomatisierungsanbieter sind für die Zuordnung der Framework-spezifischen Eigenschaften ihrer Steuerelemente zu den entsprechenden UI-Automatisierung-Eigenschaften zuständig.
Informationen über die Implementierung von UI-Automatisierung in einem Anbieter sind unter Benutzeroberflächenautomatisierungs-Anbieter für verwalteten Code zu finden. Informationen zum Implementieren von Steuerelementmustern finden Sie unter Steuerelementmuster für Benutzeroberflächenautomatisierung und Textmuster zur Benutzeroberflächenautomatisierung.
Benutzeroberflächenautomatisierung in einem Client
Das Ziel vieler automatisierter Testtools und entsprechender Szenarien ist die konsistente und wiederholbare Bearbeitung der Benutzeroberfläche. Dies kann Komponententests bestimmter Steuerelemente bis hin zum Aufzeichnen und Anwenden von Testskripts umfassen, durch die eine Iteration einer Reihe allgemeiner Aktionen auf einer Steuerelementgruppe ausgeführt wird.
Eine sich aus automatisierten Anwendungen ergebende Schwierigkeit ist das Synchronisieren eines Tests mit einem dynamischen Ziel. Ein Beispiel hierfür ist ein Listenfeld-Steuerelement, z. B. das im Windows Task-Manager angezeigte Feld mit der Liste der derzeit ausgeführten Anwendungen. Da die Einträge im Listenfeld unabhängig von der Steuerung durch die Testanwendung dynamisch aktualisiert werden, ist es nicht möglich, die Auswahl eines bestimmten Eintrags konsistent zu wiederholen. Ähnliche Probleme können auch beim Wiederholen einfacher Fokusänderungen in Benutzeroberfläche auftreten, das nicht der Steuerung durch die Testanwendung unterliegt.
Programmgesteuerter Zugriff
Mit programmgesteuertem Zugriff können mithilfe von Code alle durch normale Maus- und Tastatureingaben ausführbaren Interaktionen und Verhaltensweisen imitiert werden. UI-Automatisierung ermöglich programmgesteuerten Zugriff mit fünf Komponenten:
Die UI-AutomatisierungStruktur erleichtert die Navigation durch die Struktur von Benutzeroberfläche. Die Struktur wird aus der hWnd-Auflistung erstellt. Weitere Informationen finden Sie unter Übersicht über die Benutzeroberflächenautomatisierungs-Struktur.
Automatisierungselemente sind einzelne Komponenten im Benutzeroberfläche. Diese sind oft feiner unterteilt als ein hWnd. Weitere Informationen finden Sie unter Übersicht über Steuerelementtypen für Benutzeroberflächenautomatisierung.
Automatisierungseigenschaften stellen bestimmte Informationen über Benutzeroberfläche-Elemente bereit. Weitere Informationen finden Sie unter Übersicht über die Benutzeroberflächenautomatisierungs-Eigenschaften.
Mit Steuerelementmustern wird ein bestimmter Aspekt der Funktionalität eines Steuerelements definiert. Sie können aus Informationen zu Eigenschaften, Methoden, Ereignissen und Struktur bestehen. Weitere Informationen finden Sie unter Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung.
Automatisierungsereignisse stellen Ereignisbenachrichtigungen und Informationen bereit. Weitere Informationen finden Sie unter Übersicht über Benutzeroberflächenautomatisierungs-Ereignisse.
Haupteigenschaften für die Testautomatisierung
Die Möglichkeit, jedes Steuerelement in Benutzeroberfläche eindeutig zu identifizieren und anschließend zu finden, stellt die Grundlage für das Ausführen automatisierter Testanwendungen auf Benutzeroberfläche dar. Es gibt hierfür mehrere hilfreiche Microsoft-UI-Automatisierung-Eigenschaften, die von untestützenden Clients und Anbietern verwendet werden.
AutomationID
Unterscheidet eindeutig ein Automatisierungselement von den dazugehörigen nebengeordneten Elementen. AutomationIdProperty ist nicht lokalisiert, im Gegensatz zu Eigenschaften wie NameProperty, die in der Regel lokalisiert werden, wenn ein Produkt in mehreren Sprachen ausgeliefert wird. Siehe Verwenden der AutomationID-Eigenschaft.
Hinweis: |
|---|
Durch AutomationIdProperty wird keine eindeutige Identität in der gesamten Automatisierungsstruktur sichergestellt. Eine Anwendung kann beispielsweise ein Menüsteuerelement mit mehreren Menüeinträgen oberster Ebene enthalten, die wiederum mehrere untergeordnete Menüeinträge aufweisen. Diese sekundären Menüeinträge können durch ein allgemeines Schema wie "Element1, Element2, Element3 usw." identifiziert werden, wodurch doppelte Bezeichner für die untergeordneten Elemente aller Menüeinträge oberster Ebene möglich sind. |
ControlType
Identifiziert den Steuerelementtyp, der durch ein Automatisierungselement dargestellt wird. Durch Kenntnis des Steuerelementtyps können wichtige Informationen abgeleitet werden. Siehe Übersicht über Steuerelementtypen für Benutzeroberflächenautomatisierung.
NameProperty
Dies ist eine Zeichenfolge, die ein Steuerelement identifiziert oder erläutert. NameProperty sollte mit Bedacht verwendet werden, da eine Lokalisierung möglich ist. Siehe Übersicht über die Benutzeroberflächenautomatisierungs-Eigenschaften.
Implementieren von Benutzeroberflächenautomatisierung in einer Testanwendung
Fügen Sie die Benutzeroberflächenautomatisierungs-Verweise hinzu. |
Die erforderlichen UI-Automatisierung-DLLs für Benutzeroberflächenautomatisierungsclients werden hier aufgeführt.
|
||
Fügen Sie den System.Windows.Automation-Namespace hinzu. |
Dieser Namespace enthält alle Komponenten, die Benutzeroberflächenautomatisierungsclients zum Verwenden der Funktionen von UI-Automatisierung benötigen, mit Ausnahme von Textbehandlung. |
||
Fügen Sie den System.Windows.Automation.Text-Namespace hinzu. |
Dieser Namespace enthält alle Komponenten, die Benutzeroberflächenautomatisierungsclients zum Verwenden der Funktionen der UI-Automatisierung-Textbehandlung benötigen. |
||
Suchen relevanter Steuerelemente |
Automatisierte Testskripts suchen Benutzeroberflächenautomatisierungsclients, die relevante Steuerelemente in der Automatisierungsstruktur darstellen. Es gibt mehrere Möglichkeiten, Benutzeroberflächenautomatisierungs-Elemente mit Code zu erhalten.
Siehe Abrufen von Benutzeroberflächenautomatisierungs-Elementen. |
||
Abrufen von Steuerelementmustern |
Steuerelementmuster machen allgemeine Verhalten für Steuerelemente mit ähnlichen Funktionen verfügbar. Wenn die zu testenden Steuerelemente gefunden wurden, können mit automatisierten Testskripts die relevanten Steuerelementmuster dieser Benutzeroberflächenautomatisierungselemente abgerufen werden. Zum Beispiel das InvokePattern-Steuerelementmuster für typische Schaltflächenfunktionalität oder das WindowPattern-Steuerelementmuster für Fensterfunktionalität. Siehe Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung. |
||
Automatisieren der Benutzeroberfläche |
Automatisierte Testskripts können nun alle relevanten Benutzeroberfläche von einem Benutzeroberfläche-Framework steuern. Hierfür werden die von den UI-AutomatisierungSteuerelementmustern verfügbar gemachten Informationen und Funktionen verwendet. |
Verwandte Tools und Technologien
Es gibt eine Reihe verwandter Tools und Technologien, die automatisierte Tests mit UI-Automatisierung unterstützen.
UI Spy (UISpy.exe) ist eine graphische Benutzeroberfläche (graphical user interface, GUI)-Anwendung, die zum Sammeln von UI-Automatisierung-Informationen für Entwicklung und Debuggen von sowohl Anbietern als auch Clients verwendet werden kann. UI Spy ist in Windows Software Development Kit (SDK) enthalten.
UIAutoCmd ist ein Befehlszeilentool mit ähnlichen Funktionen wie UI Spy.
MSAABridge macht UI-Automatisierung-Informationen für Active Accessibility-Clients verfügbar. Das Hauptziel der Überbrückung zwischen UI-Automatisierung und Active Accessibility ist, vorhandenen Active Accessibility-Clients die Interaktion mit Frameworks zu ermöglichen, in denen UI-Automatisierung implementiert ist.
Sicherheit
Sicherheitsinformationen finden Sie unter Übersicht über die Benutzeroberflächenautomatisierungs-Sicherheit.
Hinweis: