Using Coded UI Tests in Load Tests
Dieses Thema gilt für folgende Anwendungsbereiche:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
Sie führen Auslastungstests durch, um das Verhalten der Software bei unterschiedlichen Auslastungsgraden zu bestimmen. Ein Auslastungstest modelliert die erwartete Nutzung eines Softwareprogramms, indem der gleichzeitige Zugriff auf das Programm durch mehrere Benutzer simuliert wird. Weitere Informationen finden Sie unter Erstellen und Bearbeiten von Auslastungstests.
Auslastungstests bestehen hauptsächlich aus einer Reihe von Webleistungstests oder Komponententests, die von mehreren simulierten Benutzern über einen bestimmten Zeitraum ausgeführt werden. Auslastungstests können auch automatisierte Tests der codierten UI enthalten. Tests der codierten UI sollten nur unter bestimmten Umständen in Auslastungstests eingeschlossen werden. Alle Szenarien, bei denen Tests der codierten UI in Auslastungstests verwendet werden, beinhalten die Verwendung der Tests der codierten UI als Leistungstests. Dies kann hilfreich sein, da mit Tests der codierten UI die Leistung auf der Benutzeroberflächenebene erfasst werden kann. Wenn eine Anwendung z. B. 1 Sekunde benötigt, um Daten an den Client zurückzugeben, aber 8 Sekunden, um die Daten im Browser zu rendern, können Sie diesen Leistungsproblemtyp nicht mit einem Webleistungstest erfassen.
Ein weiteres Szenario für die Verwendung von Tests der codierten UI in einem Auslastungstest ist eine Anwendung, bei der die Skripterstellung auf der Protokollebene schwierig ist. In diesem Fall können Sie die Auslastung vorübergehend mit codierter Benutzeroberfläche steuern, bis Sie das Skript für die Protokollebene korrekt schreiben können.
Implementieren von Zeitsteuerungsmessungen in Tests der codierten UI
Standardmäßig liefert ein in Auslastungstests verwendeter Test der codierten UI keine genauen Zeitsteuerungsmessungen, da die Aufrufe asynchron sind. Sie müssen die Tests der codierten UI korrekt implementieren, um genaue Zeitsteuerungsmessungen zu erhalten. Dazu kann die WaitForControlReady-Methode verwendet werden. Dies wird in den folgenden Beispielcodeausschnitten für eine Anmeldeseite veranschaulicht.
Tipp
Dies ist ein vereinfachtes Beispiel. Bei einem realen Test müsste auch die zeitliche Steuerung bei einem Anmeldungsfehler behandelt werden.
So implementieren Sie einen in einem Auslastungstest verwendeten Test der codierten UI korrekt
Steuern Sie, wie viel Zeit das Laden der Anmeldeseite in Anspruch nimmt.
TestContext.BeginTimer("UI Login Page Load");
Durch diesen Aufruf wird die Anmeldeseite geladen.
UIMap.LoginPage();
Für jede zeitliche Steuerung in einem Webtest muss "WaitForReady" verwendet werden. Dadurch wird gewartet, bis das Formular angezeigt wird.
UIMap.UIHttpteamtestweb1STORWindow1.UIHttpteamtestweb1STORDocument.UIEmailEdit.WaitForControlReady(); TestContext.EndTimer("UI Login Page Load");
Warnung
Stellen Sie sicher, dass die Zeit für das Ausfüllen des Formulars nicht im Timer erfasst wird. Generieren Sie während der Aufzeichnung nach dem Ausfüllen eines Formulars, aber vor dem Absenden, Code aus der Aufzeichnung.
Diese Funktion füllt das Anmeldeformular aus.
UIMap.FilledInLoginForm();
Steuern Sie die Zeit für den Anmeldevorgang.
TestContext.BeginTimer("UI Login"); UIMap.LoggedIn();
Für jede zeitliche Steuerung in einem Webtest muss "WaitForReady" verwendet werden. Dadurch wird gewartet, bis die Anmeldebestätigungsseite angezeigt wird.
UIMap.UIHttpteamtestweb1STORWindow.UIHttpteamtestweb1STORDocument.UIWelcomeJamesBondwellPane.WaitForControlReady(); TestContext.EndTimer("UI Login");
Einschränkungen des Tests der codierten UI in Auslastungstests
Tests der codierten UI steuern die Maus und die Tastatur. Daher kann pro Agent nur ein virtueller Benutzer Tests der codierten UI ausführen. Dies lässt sich am besten steuern, indem Sie ein separates Szenario im Auslastungstest einrichten und die Benutzerauslastung auf einen Benutzer festlegen. Wenn Sie mehrere UI-Tests verwenden, konfigurieren Sie die Testmischung als "Sequential". Weitere Informationen finden Sie unter Erstellen weiterer Szenarios für einen vorhandenen Auslastungstest und Bearbeiten von Testmischungsmodellen zum Angeben der Wahrscheinlichkeit, mit der ein virtueller Benutzer einen Test ausführt.
Zudem müssen die Load Agents so konfiguriert werden, dass sie nicht als Dienst, sondern als interaktiver Prozess ausgeführt werden. Weitere Informationen finden Sie unter Installing and Configuring Visual Studio Agents and Test and Build Controllers.
Siehe auch
Referenz
Konzepte
Testen der Benutzeroberfläche mit automatisierten UI-Tests
Weitere Ressourcen
Erstellen und Bearbeiten von Auslastungs- und Webleistungstests