Considerations for Load Tests
Dieses Thema enthält Tipps zur Ausführung von umfangreichen Auslastungstests in Visual Studio Ultimate. Die folgenden Aspekte werden erörtert:
Auswählen des geeigneten Auslastungsmusters
Auswählen des geeigneten Verbindungsmodells
Samplingrate und Datenerfassung
Reaktionszeit
Festlegen von Zielwerten für die Antwortzeit bei Webleistungstestanforderungen
Einbeziehen von Zeitsteuerungsdetails zum Erfassen prozentualer Daten
Festlegen der Prozentsatz neuer Benutzer-Eigenschaft
Aktivieren des ASP.NET-Profilers
Aktivieren virtueller Benutzerprotokollierung
Aktivieren von SQL-Ablaufverfolgung
Verwalten einer angemessenen Anzahl von Agent-Computern
Auswählen des geeigneten Auslastungsmusters
Es gibt drei Typen von Auslastungsmustern: konstante Auslastung, schrittweise Auslastung und zielbasierte Auslastung. Zur Auswahl des geeigneten Musters für den Auslastungstest ist das Verständnis der verschiedenen Typen wichtig. Weitere Informationen finden Sie unter Bearbeiten von Auslastungsmustern zur Modellierung virtueller Benutzeraktivitäten.
Konstante Auslastung |
Ein konstantes Auslastungsmuster eignet sich zum Testen einer konstanten Benutzerauslastung über einen langen Zeitraum. Wenn Sie eine hohe Benutzerauslastung mit einem konstanten Auslastungsmuster festlegen, empfiehlt es sich, auch eine Aufwärmphase für den Auslastungstest festzulegen. Mithilfe einer Aufwärmphase vermeiden Sie eine Überlastung Ihrer Site durch Hunderte von neuen Benutzersitzungen, in denen eine Site gleichzeitig aufgerufen wird. |
Schritt |
Schrittweise Auslastungsmuster werden häufig verwendet, um die Systemleistung bei einer zunehmenden Benutzerauslastung zu überwachen. Durch die Überwachung des Systems bei zunehmender Benutzerauslastung können Sie die Benutzeranzahl feststellen, die mit einer angemessenen Reaktionszeit vom System unterstützt wird bzw. im Gegensatz dazu zu Leistungseinbußen des Systems führt. Wenn bei jedem Schritt eine große Anzahl von Benutzern hinzufügt wird, z. B. mehr als 50 Benutzer, sollten Sie möglicherweise die Eigenschaft Schrittverlaufszeit verwenden, um den Start der Benutzer in dem Schritt zu staffeln. Weitere Informationen finden Sie unter How to: Specify the Step Ramp Time Property for a Step Load Pattern. |
Zielbasierte Auslastung |
Ein zielbasiertes Auslastungsmuster ähnelt einem schrittweisen Auslastungsmuster hinsichtlich der zunehmenden Benutzerauslastung über einen bestimmten Zeitraum. Bei diesem Muster können Sie jedoch festlegen, dass die Auslastung beim Erreichen einer bestimmten Leistungsindikatorstufe nicht weiter gesteigert wird. So können Sie mit einem zielbasierten Auslastungsmuster beispielsweise eine Zunahme bis zu einem Auslastungsniveau von 75 % für einen Zielserver festlegen und die Auslastung anschließend auf dieser Stufe halten. |
Wenn keines der vordefinierten Auslastungsmuster Ihren Anforderungen entspricht, haben Sie die Möglichkeit, benutzerdefinierte Auslastungstest-Plug-Ins zur Steuerung der Benutzerauslastung bei Tests zu implementieren. Weitere Informationen finden Sie unter Erstellen und Verwenden von benutzerdefinierten Plug-Ins für Auslastungs- und Webleistungstests.
Auswählen des entsprechenden Verbindungsmodells für den Webleistungstest
Die Testlaufeinstellungen für Auslastungstests unterstützen verschiedene Optionen für das Modellieren von Benutzerverbindungen zum Webserver mithilfe der Eigenschaft Webtest-Verbindungsmodell. Es gibt drei Typen von Verbindungsmodellen: Verbindungen pro Benutzer, Verbindungspool und Verbindung pro Testiteration. Zur Auswahl des geeigneten Verbindungsmodells für den Auslastungstest ist das Verständnis der verschiedenen Typen wichtig.
Verbindungen pro Benutzer |
Beim Modell Verbindungen pro Benutzer wird das Verhalten eines Browsers in einer realistischen Umgebung simuliert. Jeder virtuelle Benutzer, der einen Webleistungstest ausführt, verwendet bis zu sechs Verbindungen zu jedem Webserver. Die Verbindung wird für den Webserver offengehalten, der diesem virtuellen Benutzer zugeordnet ist. Die erste Verbindung wird hergestellt, wenn im Webleistungstest die erste Anforderung ausgegeben wird. Zusätzliche Verbindungen können verwendet werden, wenn eine Seite mehr als eine abhängige Anforderung enthält. Diese Anforderungen können parallel über die zusätzlichen Verbindungen erfolgen. Ältere Browser nutzen bis zu zwei Verbindungen pro Webserver, aber Firefox 3 und Internet Explorer 8 verwenden bis zu 6 Verbindungen pro Webserver. Dieselben Verbindungen werden überall im Auslastungstest für den virtuellen Benutzer wiederverwendet. Der Nachteil dieses Modells ist, dass die Zahl der geöffneten Verbindungen auf dem Agent-Computer die Benutzerauslastung bis um das Sechsfache (bei mehreren Webservern sogar noch mehr) übersteigen kann und die Benutzerauslastung, die von einem einzelnen Auslastungstest-Agent gesteuert werden kann, durch die Ressourcen begrenzt wird, die zur Unterstützung dieser Verbindungen notwendig sind. |
Verbindungspool |
Das Verbindungspoolmodell schont die Ressourcen auf dem Auslastungstest-Agent, indem Verbindungen zum Webserver von mehreren virtuellen Benutzern von Webleistungstests gemeinsam verwendet werden. Beim Verbindungspoolmodell wird mit der Größe des Verbindungspools die maximale Anzahl von Verbindungen zwischen Auslastungstest-Agent und Webserver festgelegt. Wenn die Benutzerauslastung die Größe des Verbindungspools übersteigt, werden Verbindungen für die Webleistungstests, die für verschiedene virtuelle Benutzer ausgeführt werden, gemeinsam verwendet. Dies ist das beste Modell, um die größtmögliche Auslastung auf der Anwendungsebene zu erzielen. Gemeinsames Verwenden von Verbindungen bedeutet in diesem Fall, dass ein Webleistungstest möglicherweise mit der Ausgabe einer Anforderung warten muss, wenn die Verbindung von einem anderen Webleistungstest verwendet wird. Die durchschnittliche Wartezeit für das Senden von Anforderungen eines Webleistungstests wird vom Leistungsindikator Durchschnittliche Verbindungswartezeit des Auslastungstests aufgezeichnet. Dieser Wert sollte weniger als die durchschnittliche Antwortzeit für eine Seite betragen. Ist dies nicht der Fall, ist die Größe des Verbindungspools wahrscheinlich zu klein. |
Verbindung pro Testiteration |
Bei der Verbindung pro Testiteration wird die Verbindung nach jeder Testiteration getrennt und bei der nächsten Iteration eine neue Verbindung geöffnet. Bei dieser Einstellung wirkt die größte Belastung auf die Netzwerkanmeldungen. Falls dies keine Voraussetzung ist, sollten Sie eine der vorherigen zwei Optionen verwenden. |
Samplingrate und Datenerfassung
Wählen Sie eine passende Samplingrate auf Grundlage der Länge des Auslastungstests aus. Eine niedrige Samplingrate, z. B. fünf Sekunden, erfasst mehr Daten für die einzelnen Leistungsindikatoren als eine hohe Samplingrate. Beim Erfassen großer Datenmengen über einen längeren Zeitraum können Speicherplatzprobleme auftreten. Sie können die Samplingrate für lange Auslastungstests erhöhen, um die erfasste Datenmenge zu reduzieren. Die Anzahl von Leistungsindikatoren beeinflusst auch die erfasste Datenmenge. Wenn Sie die Anzahl der Leistungsindikatoren für Testcomputer reduzieren, verringert sich auch die erfasste Datenmenge.
Testen Sie die verschiedenen Samplingraten, um festzustellen, welche Samplingrate sich am besten für einen bestimmten Auslastungstest eignet. In der folgenden Tabelle sind empfohlene Samplingraten aufgeführt, die Sie zu Beginn verwenden können.
Dauer des Auslastungstests |
Empfohlene Samplingrate |
---|---|
< 1 Stunde |
5 Sekunden |
1 – 8 Stunden |
15 Sekunden |
8 – 24 Stunden |
30 Sekunden |
> 24 Stunden |
60 Sekunden |
Reaktionszeit
Die Reaktionszeit für Webleistungstestanforderungen hat erheblichen Einfluss auf die Anzahl von Benutzern, die mit einer angemessenen Antwortzeit unterstützt werden können. Wenn Sie die Reaktionszeit von zwei auf zehn Sekunden festlegen, kann in der Regel die fünffache Anzahl an Benutzern simuliert werden. Besteht Ihre Zielsetzung jedoch darin, reale Benutzer zu simulieren, sollten Sie die Reaktionszeit auf Grundlage der angenommenen Verwendung Ihrer Website durch die Benutzer festlegen. Das Erhöhen der Reaktionszeit und der Benutzeranzahl führt nicht unbedingt zu einer gesteigerten Auslastung Ihres Webservers. Bei einer authentifizierten Website beeinflusst der verwendete Schematyp die Leistung.
Wenn Sie Reaktionszeiten für einen Webleistungstest deaktivieren, können Sie eventuell einen Auslastungstest generieren, bei dem ein höherer Datendurchsatz bezüglich der Anforderungen pro Sekunde erfolgt. Wenn Sie die Reaktionszeiten deaktivieren, sollten Sie auch die Benutzeranzahl auf einen wesentlich geringeren Wert festlegen als bei aktivierten Reaktionszeiten. Deaktivieren Sie beispielsweise Reaktionszeiten und führen einen Test mit 1000 Benutzern aus, wird wahrscheinlich entweder der Zielserver oder der Auslastungstest-Agent überlastet.
Weitere Informationen finden Sie unter Editing Think Times to Simulate Web Site Human Interaction Delays in Load Tests Scenarios.
Festlegen von Zielwerten für die Antwortzeit bei Webleistungstestanforderungen
Eine der Eigenschaften einer Webtestanforderung ist das Antwortzeitziel. Wenn Sie bei der Ausführung eines Webleistungstests innerhalb eines Auslastungstests Antwortzeitziele für Ihren Webleistungstest festlegen, ermittelt der Auslastungstest-Analyzer den prozentualen Anteil von nicht erreichten Zielen des Webleistungstests. In der Standardeinstellung sind keine Antwortzeitziele für Webanforderungen festgelegt.
Darüber hinaus führen bei Verwendung der Validierungsregel für das Antwortzeitziel Seiten, die das Antwortzeitziel nicht erreichen, zu einem Fehler im Auslastungstest. Wenn Sie den Anmeldefehler verwenden, können Sie anzeigen, was der virtuelle Benutzer getan hat, als die langsame Seite aufgetreten ist.
Weitere Informationen finden Sie unter Gewusst wie: Festlegen von Seitenantwortzeitzielen in einem Webleistungstest.
Einschließen von Zeitsteuerungsdetails zur Erfassung prozentualer Daten und Aktivierung der Detailansicht
Die Testlaufeinstellungen beinhalten eine Eigenschaft mit dem Namen Speicher für Details der zeitlichen Steuerung. Wenn diese Eigenschaft aktiviert ist, werden die Zeiten für die Ausführung der einzelnen Tests, Transaktionen und Seiten beim Auslastungstest im entsprechenden Ergebnisrepository gespeichert. Dadurch wird das Diagramm für die Aktivitäten virtueller Benutzer im Auslastungstest-Analyzer aktiviert. Dadurch werden außerdem Ergebnisdaten mit zu 90, 95 und 99 Prozent erreichten Zielen und die Standardabweichung im Auslastungstest-Analyzer in den Tabellen Tests, Transaktionen und Seiten angezeigt.
Standardmäßig ist die Eigenschaft Speicher für Details der zeitlichen Steuerung aktiviert, um das Diagramm für Aktivitäten virtueller Benutzer in der Detailansicht im Auslastungstestergebnis, das den Auslastungstest-Analyzer verwendet, zu unterstützen.
Möglicherweise sollten Sie die Eigenschaft Speicher für Details der zeitlichen Steuerung für große Tests deaktivieren. Dafür gibt es zwei wichtige Gründe.
Es wird sehr viel Speicherplatz benötigt, um Daten der Zeitsteuerungsdetails im Ergebnisrepository für Auslastungstests zu speichern, insbesondere bei langen Auslastungstests.
Das Speichern der Daten im Ergebnisrepository für Auslastungstests am Ende des Tests nimmt viel Zeit in Anspruch, da die Daten bis zum Abschluss der Ausführung auf den Auslastungstests-Agents gespeichert werden.
Wenn für das Ergebnisrepository für Auslastungstests ausreichend Speicherplatz zur Verfügung steht, können Sie Speicher für Details der zeitlichen Steuerung aktivieren, um prozentuale Daten zu erfassen. Es stehen zwei Auswahlmöglichkeiten zum Aktivieren von Speicher für Details der zeitlichen Steuerung zur Verfügung: StatisticsOnly und AllIndividualDetails. Mit beiden Optionen werden alle Einzeltests, Seiten und Transaktionen zeitlich gesteuert, und prozentuale Daten werden über die einzelnen Zeitsteuerungsdaten erfasst. Bei der Auswahl von StatisticsOnly werden die einzelnen Zeitsteuerungsdaten im Repository nach der Berechnung der prozentualen Daten gelöscht. Das Löschen der Daten verringert den Speicherplatzbedarf im Repository. Wenn Sie die Detaildaten der Zeitsteuerung jedoch mit SQL-Tools direkt verarbeiten möchten oder die Anzeige detaillierter Informationen zu virtuellen Benutzern im Diagramm mit Aktivitäten der virtuellen Benutzer aktivieren möchten, wählen Sie AllIndividualDetails aus, damit die Zeitsteuerungsdetaildaten im Repository gespeichert werden.
Weitere Informationen finden Sie unter Analyzing Load Test Virtual User Activity in the Details View of the Load Test Analyzer und Gewusst wie: Konfigurieren von Auslastungstests zum Erfassen aller Details, um Aktivitäten virtueller Benutzer in Testergebnissen zu ermöglichen.
Festlegen der Prozentsatz neuer Benutzer-Eigenschaft
Jedes Szenario in einem Auslastungstest verfügt über eine Eigenschaft mit dem Namen Prozentsatz neuer Benutzer. Diese Eigenschaft beeinflusst die Simulation der Zwischenspeicherung eines Webbrowsers im Auslastungstest-Laufzeitmodul. Der Standardwert für Prozentsatz neuer Benutzer beträgt 0. Das bedeutet, dass jeder virtuelle Benutzer einen virtuellen Cache abhängiger Anforderungen und eine Liste der Cookies zwischen Testiterationen führt. Der Cache funktioniert wie ein Browsercache, d. h., es werden keine nachfolgenden Anforderungen an die URL gesendet. Dieses Verfahren entspricht weitgehend echten Webbrowsern.
Wenn "Prozentsatz Neuer Benutzer" auf 100 Prozent festgelegt wird, ist jeder Benutzer gewissermaßen ein einmaliger Benutzer und kehrt nie zur Website zurück. In diesem Fall wird jede Webleistungstestiteration in einem Auslastungstest wie ein erstmaliger Zugriff eines Benutzers auf eine Website behandelt, bei der der Browsercache des Benutzers keine Daten aus vorherigen Websiteaufrufen enthält. Daher werden alle Anforderungen im Webleistungstest, einschließlich aller abhängigen Anforderungen, wie z. B. Bilder, heruntergeladen.
Tipp
Eine Ausnahme stellt dabei eine mehrmalige Anforderung der gleichen zwischenspeicherbaren Ressource in einem Webleistungstest dar.
Verwenden Sie den Standardwert von null Prozent neuer Benutzer, um die größtmögliche Belastung auf der Anwendungsebene der Website zu erzielen. Dadurch wird nicht nur ein genaueres Modell echter Benutzer, sondern auch eine höhere Belastung auf der Anwendungsebene erzielt, auf der die häufigsten Leistungsprobleme auftreten. Weitere Informationen finden Sie unter Gewusst wie: Angeben des Prozentanteils virtueller Benutzer, die auf Webcachedaten zugreifen.
Aktivieren des ASP.NET-Profilers
Eine neue Funktion in Microsoft Visual Studio 2010 stellt der Adapter für diagnostische Daten des ASP.NET-Profilers dar, mit dessen Hilfe Sie während der Ausführung eines Auslastungstests ASP.NET-Profilerdaten aus der Anwendungsebene erfassen können. Der Profiler sollte nicht für lange Auslastungstests (z. B. Auslastungstests von mehr als einer Stunde) ausgeführt werden, da die Profilerdatei andernfalls Hunderte von Megabyte groß werden kann. Führen Sie stattdessen kürzere Auslastungstests mit dem ASP.NET-Profiler aus. Diese bieten ebenfalls den Vorteil einer umfassenden Diagnose von Leistungsproblemen.
Weitere Informationen finden Sie unter How to: Configure ASP.NET Profiler for Load Tests Using Test Settings.
Aktivieren virtueller Benutzerprotokollierung
Eine neue Funktion in Microsoft Visual Studio 2010 ermöglicht Ihnen das Erfassen vollständiger Protokolle für fehlgeschlagene Tests oder das Angeben einer Frequenz zum Protokollieren von Tests. Die Protokollierung wird von den Eigenschaften Protokoll bei Testfehler speichern, Protokollhäufigkeit für abgeschlossene Tests speichern und Maximale Testprotokolle gesteuert. Die Anzahl der erfassten Protokolle wird von den Eigenschafteneinstellungen Maximale Testprotokolle und Protokollhäufigkeit für abgeschlossene Tests speichern gesteuert. Die Standardeinstellungen verhindern, dass eine große Anzahl von Protokollen gesammelt wird. Verwenden Sie für Tests mit langer Laufzeit, bei denen Millionen von Anforderungen generiert werden, nicht die Einstellung Protokollhäufigkeit für abgeschlossene Tests speichern. Andernfalls wird die Anzahl der Protokolle zu groß. Legen Sie auch für die Eigenschafteneinstellung Maximale Testprotokolle, die eigentlich die maximale Anzahl der Protokolle pro Fehlertyp steuert, eine angemessene Zahl fest. Sie sollten diese Einstellungen beibehalten, um zu verhindern, dass Zehntausende Protokolle gesammelt werden. Dadurch wird nämlich die am Ende des Tests zum Erfassen der Protokolle benötigte Zeit erhöht und Speicherplatz in der Auslastungstestdatenbank belegt.
Weitere Informationen finden Sie unter Modifying Load Test Logging Settings.
Aktivieren von SQL-Ablaufverfolgung
Die Testlaufeinstellungen beinhalten eine Eigenschaft mit dem Namen SQL-Ablaufverfolgung aktiviert. Mithilfe dieser Eigenschaft können Sie das Ablaufverfolgungsfeature von Microsoft SQL Server für die Dauer des Auslastungstests aktivieren. Dieses Feature stellt eine weitere Möglichkeit zum Starten einer separaten SQL Profiler-Sitzung bei der Ausführung des Auslastungstests dar, um SQL-Leistungsprobleme zu ermitteln. Wenn die Eigenschaft aktiviert ist, werden SQL-Ablaufverfolgungsdaten im Auslastungstest-Analyzer angezeigt. Die erfassten Daten werden in der Tabelle SQL-Ablaufverfolgung auf der Seite Tabellen angezeigt.
Um dieses Feature zu aktivieren, muss der Benutzer, der den Auslastungstest ausführt, über SQL-Berechtigungen zur Ausführung der SQL-Ablaufverfolgung verfügen. Wenn ein Auslastungstest auf einem Remotecomputer mit einem Test-Agent und einem Testcontroller ausgeführt wird, benötigt der Controller die SQL-Berechtigungen. Weiterhin muss ein Verzeichnis (normalerweise eine Netzwerkfreigabe) zum Schreiben der Ablaufverfolgungsdaten angegeben werden. Nach Abschluss des Auslastungstests wird die Ablaufverfolgungsdatei in das Auslastungstestrepository importiert und dem Auslastungstest zugeordnet, sodass die Datei zu einem späteren Zeitpunkt im Auslastungstest-Analyzer angezeigt werden kann.
Weitere Informationen finden Sie unter Konfigurieren der Testlaufeinstellungen für Auslastungstests und Gewusst wie: Integrieren von SQL-Ablaufverfolgungsdaten mit dem Auslastungstest-Editor.
Verwalten einer angemessenen Anzahl von Agent-Computern
Wenn die CPU-Auslastung eines Agent-Computers mehr als 75 % beträgt oder weniger als 10 % physischer Speicher zur Verfügung steht, ist dieser Computer überlastet. Fügen Sie dem Testcontroller weitere Agents hinzu, um sicherzustellen, dass der Agent-Computer beim Auslastungstest keine Engpässe verursacht.
Weitere Informationen finden Sie unter Verteilen von Auslastungstests auf mehrere Testcomputer mithilfe von Testcontrollern und Test-Agents und Gewusst wie: Angeben der in Auslastungstestszenarien zu verwendenden Test-Agents.
Siehe auch
Aufgaben
Problembehandlung für Auslastungstests
Konzepte
Analyzing Errors in Load Tests Using the Errors Table
Analyzing Threshold Rule Violations in Load Tests Using the Load Test Analyzer
Weitere Ressourcen
Erstellen und Bearbeiten von Auslastungstests
Consideration for Load Tests that Contain Web Performance Tests