Making Coded UI Tests Wait For Specific Events During Playback
Sie können bei der Wiedergabe eines Tests der codierten UI festlegen, dass bei einem Test auf bestimmte Ereignisse gewartet werden soll, z. B. auf das Anzeigen eines Fensters, das Ausblenden einer Statusanzeige usw.Verwenden Sie hierzu die entsprechende UITestControl.WaitForControlXXX()-Methode, wie in der folgenden Tabelle beschrieben.Ein Beispiel für einen Test der codierten UI, bei dem bei einem Steuerelement darauf gewartet wird, dass es mithilfe der WaitForControlEnabled-Methode aktiviert wird, finden Sie unter Walkthrough: Creating, Editing and Maintaining a Coded UI Test.
Anforderungen
- Visual Studio Ultimate, Visual Studio Premium
Tipp |
---|
Sie können Verzögerungen vor Aktionen mit dem Editor für Tests der codierten UI hinzufügen.Weitere Informationen finden Sie unter Gewusst wie: Einfügen einer Verzögerung vor einer UI-Aktion mithilfe des Test-Editors für codierte UI. |
UITestControl.WaitForControlXXX()-Methoden
UITestControl.WaitForControlXXX()-Methoden |
Beschreibung |
---|---|
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlReady ] |
Wartet, bis für das Steuerelement Maus- und Tastatureingaben vorgenommen werden können.Das Modul ruft implizit diese API auf, damit mit allen Aktionen gewartet wird, bis mit dem Steuerelement Vorgänge ausgeführt werden können.In bestimmten vertraulichen Szenarien müssen Sie womöglich einen expliziten Aufruf ausführen. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlEnabled ] |
Wartet, bis das Steuerelement aktiviert wird, wenn der Assistent eine asynchrone Validierung der Eingabe durch Aufrufe an den Server ausführt.Sie können z. B. eine Methode verwenden, damit gewartet wird, bis die Schaltfläche Weiter des Assistenten aktiviert ist ().Ein Beispiel für diese Methode finden Sie unter Walkthrough: Creating, Editing and Maintaining a Coded UI Test. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlExist ] |
Wartet, bis das Steuerelement auf der Benutzeroberfläche angezeigt wird.Sie warten z. B. darauf, dass ein Fehlerdialogfeld angezeigt wird, nachdem die Anwendung die Validierung der Parameter durchgeführt hat.Die für die Validierung benötigte Zeit variiert.Sie können mithilfe dieser Methode auf das Fehlerdialogfeld warten. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlNotExist ] |
Wartet, bis das Steuerelement von der Benutzeroberfläche verschwindet.Sie können z. B. warten, bis die Statusanzeige ausgeblendet wird. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyEqual(System.String,System.Object) ] |
Wartet, bis die auf dem Steuerelement angegebene Eigenschaft den festgelegten Wert erreicht.Sie warten beispielsweise, bis der Statustext Fertig lautet. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyNotEqual(System.String,System.Object) ] |
Wartet, bis die auf dem Steuerelement angegebene Eigenschaft das Gegenteil eines festgelegten Werts erreicht.Sie warten beispielsweise, bis das Eingabefeld nicht schreibgeschützt, also bearbeitbar, ist. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlCondition(System.Predicate{Microsoft.VisualStudio.TestTools.UITesting.UITestControl}) ] |
Wartet, bis die angegebenen Prädikatrückgaben true sind.Diese Option kann für komplexe Wartevorgänge (wie OR-Bedingungen) für ein bestimmtes Steuerelement verwendet werden.Sie können beispielsweise warten, bis der Statustext Erfolgreich oder Fehler lautet, wie im folgenden Code dargestellt:
|
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForCondition``1(``0,System.Predicate{``0}) ] |
Alle vorherigen Methoden sind Instanzmethoden von UITestControl.Dies ist eine statische Methode.Mit dieser Methode wird außerdem darauf gewartet, dass das angegebene Prädikat true ist. Sie kann jedoch auch für komplexe Wartevorgänge (wie OR-Bedingungen) für mehrere Steuerelemente verwendet werden.Sie können z. B. warten, bis der Statustext Erfolgreich lautet oder eine Fehlermeldung angezeigt wird, wie im folgenden Code dargestellt:
|
All diese Methoden weisen folgendes Verhalten auf:
Die Methoden geben "true" zurück, wenn der Wartevorgang erfolgreich war, und "false", wenn dabei ein Fehler aufgetreten ist.
Das implizite Timeout für den Wartevorgang wird von der WaitForReadyTimeout-Eigenschaft angegeben.Der Standardwert dieser Eigenschaft ist 60000 Millisekunden (eine Minute).
Die Methoden verfügen über eine Überladung für ein explizites Timeout in Millisekunden.Wenn der Wartevorgang jedoch zu einer impliziten Suche nach dem Steuerelement führt, oder wenn die Anwendung ausgelastet ist, kann die tatsächliche Wartezeit länger sein als das angegebene Timeout.
Die vorherigen Funktionen sind leistungsstark und flexibel und sollten fast alle Bedingungen erfüllen.Falls diese Methoden die Anforderungen jedoch nicht erfüllen und Sie Wait oder Sleep im Code angeben müssen, sollten Sie die Playback.Wait()-API anstelle der Thread.Sleep()-API verwenden.Gründe:
Sie können die ThinkTimeMultiplier-Eigenschaft verwenden, um die Dauer des Standbymodus ändern.Standardmäßig ist für diese Variable "1" festgelegt. Sie können jedoch einen höheren oder niedrigeren Wert festlegen, um die Wartezeit im gesamten Code zu ändern.Wenn Sie z. B. ausdrücklich langsame Netzwerke oder einen anderen langsamen Leistungsfall testen, können Sie für diese Variable an einer Position (oder sogar in der Konfigurationsdatei) "1,5" festlegen, um an allen Positionen 50 Prozent zusätzliche Wartezeit hinzuzufügen.
Playback.Wait() ruft Thread.Sleep() (nach der oben aufgeführten Berechnung) intern in kleineren Ausschnitten in einer For-Schleife auf und überprüft gleichzeitig durch den Benutzer abgebrochene oder angehaltene Vorgänge.Mit anderen Worten: Sie können mithilfe von Playback.Wait() die Wiedergabe vor dem Ende des Wartevorgangs abbrechen, wohingegen der Standbymodus die Wiedergabe nicht abbricht oder eine Ausnahme auslöst.
Tipp |
---|
Mit dem Editor für den Test der codierten UI können die Tests der codierten UI mühelos geändert werden.Er ermöglicht das Suchen, Anzeigen und Bearbeiten der Testmethoden.Sie können auch UI-Aktionen und die zugehörigen Steuerelemente in der UI-Steuerelementzuordnung bearbeiten.Weitere Informationen finden Sie unter Editing Coded UI Tests Using the Coded UI Test Editor. |
Empfehlungen
Weitere Informationen finden Sie unter Tests für fortlaufende Übermittlung mit Visual Studio 2012 - Chapter 5: Automatisieren von Systemtests
Siehe auch
Aufgaben
Walkthrough: Creating, Editing and Maintaining a Coded UI Test
Konzepte
Überprüfen von Code mithilfe von Test der codierten Benutzeroberfläche
Supported Configurations and Platforms for Coded UI Tests and Action Recordings