War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Verwenden von Benutzeroberflächenautomatisierung für automatisierte Tests

Hinweis Hinweis

Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI-Automatisierung-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind. Aktuelle Informationen zur UI-Automatisierung finden Sie auf der Seite zur Windows-Automatisierungs-API: UI-Automatisierung.

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 Hinweis

In dieser Übersicht sollen die neuen und verbesserten Testfunktionen von UI-Automatisierung hervorgehoben werden. Diese Übersicht ist nicht zur Bereitstellung von Informationen über Barrierefreiheitsfeatures vorgesehen. Barrierefreiheitsfeatures werden nur wenn nötig erläutert.

Dieses Thema enthält folgende Abschnitte.

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-Automatisierung Steuerelementmuster (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 Hinweis

Bei anderen Barrierefreiheitsmodellen 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.

Aa348551.collapse_all(de-de,VS.110).gifImplementieren 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

Button

Windows Presentation Foundation

Inhalt

NameProperty

Button

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.

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.

Aa348551.collapse_all(de-de,VS.110).gifProgrammgesteuerter 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:

Aa348551.collapse_all(de-de,VS.110).gifHaupteigenschaften 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.

Aa348551.collapse_all(de-de,VS.110).gifAutomationID

Unterscheidet ein Automatisierungselement von den 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 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.

Aa348551.collapse_all(de-de,VS.110).gifControlType

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.

Aa348551.collapse_all(de-de,VS.110).gifNameProperty

Dies ist eine Textzeichenfolge, die ein Steuerelement identifiziert oder erläutert. NameProperty sollte mit Vorsicht verwendet werden, da möglicherweise eine Lokalisierung vorliegt. Siehe Übersicht über die Benutzeroberflächenautomatisierungs-Eigenschaften.

Aa348551.collapse_all(de-de,VS.110).gifImplementieren 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.

  • UIAutomationClient.dll stellt den Zugriff auf die clientseitigen APIs von UI-Automatisierung zur Verfügung.

  • UIAutomationClientSideProvider.dll stellt die Möglichkeit zum Automatisieren von Win32-Steuerelementen zur Verfügung. Siehe Benutzeroberflächenautomatisierungs-Unterstützung für Standardsteuerelemente.

  • UIAutomationTypes.dll stellt den Zugriff auf bestimmte, in UI-Automatisierung definierte Typen zu Verfügung.

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.

  • Ausführen einer Abfrage von Benutzeroberfläche mit einer Condition-Anweisung. Dies wird in der Regel bei sprachneutraler AutomationIdProperty verwendet.

Hinweis Hinweis
Eine AutomationIdProperty kann mit Tools wie Inspect.exe abgerufen werden. Diese Tools können die UI-Automatisierung-Eigenschaften eines Steuerelements aufgliedern.
  • Verwenden Sie die TreeWalker-Klasse, um die gesamte UI-Automatisierung -Struktur oder eine Teilmenge davon zu durchlaufen.

  • Verfolgen Sie den Fokus.

  • Verwenden Sie das hWnd des Steuerelements.

  • Verwenden Sie die Bildschirmposition, z. B. die Position des Mauszeigers.

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-Automatisierung Steuerelementmustern verfügbar gemachten Informationen und Funktionen verwendet.

Es gibt eine Reihe verwandter Tools und Technologien, die automatisierte Tests mit UI-Automatisierung unterstützen.

  • Inspect.exe ist eine graphische Benutzeroberfläche (graphical user interface, GUI)-Anwendung, die zum Sammeln von UI-Automatisierung-Informationen für Entwicklung und Debuggen sowohl von Anbietern als auch von Clients verwendet werden kann. Inspect.exe ist in Windows Software Development Kit (SDK) enthalten.

  • 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.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft