Leistungstests können manchmal so missverstanden werden, dass sie den Server mit hohem Durchsatz an Anfragen belasten, aber Konzepte wie Denkzeit, Tempo und Verzögerungen helfen uns, die tatsächlichen Benutzermuster zu erreichen, die während der Produktion auftreten. Es ist sehr wichtig, das Leistungstestszenario so nah wie möglich an realistischen Benutzermustern zu entwerfen, um Ergebnisse zu erzielen, die echte Probleme und Engpässe in Anwendungen finden. Im gleichen Kontext haben Zeit und Tempo bei der Entwicklung von Auslastungstestszenarien eine erhebliche Bedeutung. In diesem Artikel behandeln wir die Denkzeit, das Tempo und die Verzögerungen sowie deren Bedeutung, bewährte Methoden und wie wir diese Metriken als Teil unseres Auslastungstestszenarios mit LoadView einrichten können. Lassen Sie uns zunächst verstehen, was Denkzeit und Tempo in Auslastungstests bedeuten, wenn es um Auslastungstests geht.

Was ist Think Time?

Denken Sie, dass die Zeit beim Auslastungstest die Zeitdifferenz zwischen jeder Aktion eines einzelnen Benutzers ist. Ein Benutzer beim Surfen in der Anwendung verbringt einige Zeit (denken Sie an Zeit), bevor sie eine Aktion auf der Website. In einer E-Commerce-Webanwendung klickt ein Benutzer beispielsweise auf eine Produktkachel, ruft die Produktanzeigeseite auf und wartet dort, um den Inhalt über diese Seite zu konsumieren und zu lesen, bevor er auf die Schaltfläche ” In den Warenkorb” klickt. Die Zeit, die wir vom Klicken auf die Produktkachel bis zum Klicken auf “In den Warenkorb” verbracht haben, wird think time genannt. Der Wert der Denkzeit variiert von Benutzer zu Benutzer, aber für unser Testszenario können wir den Durchschnitt der Denkzeit nehmen.

Wenn Sie an Auslastungs- und Stresstests denken, denken Sie in der Regel daran, nur eine große Anzahl gleichzeitiger Benutzer für Ihre Webanwendungen, Websites oder APIs bereitzustellen, um zu sehen, wie sie unter Stress funktionieren. Während Stresstests ihren Platz in Leistungstests haben, ist diese Art von Leistungstest nicht geeignet, um die Leistung aus der Perspektive des Benutzers zu verstehen, da dies nicht wirklich reale Szenarien simuliert. Hier kommt die Denkzeit ins Spiel, um die Schritte der User Journey besser zu simulieren , z. B. Wege zum Kauf, die Suche nach einem Produkt oder die Anmeldung bei einem Konto. Jeder dieser Schritte hat unterschiedliche Denkzeitwerte, und es ist wichtig, diese bei Auslastungstests zu berücksichtigen.

Was ist Pacing?

Pacing wird während Auslastungstests verwendet, um sicherzustellen, dass wir den Test mit der gewünschten Transaktion pro Sekunde ausführen. Es ist die Zeitverschiebung zwischen jeder vollständigen Iteration des Geschäftsflusses. Es hilft uns, die Anzahl der Anforderungen zu kontrollieren, die pro Sekunde an den Server gesendet werden. Pacing ist etwas anders als den Andenken. Wie oben beschrieben, denken Sie, dass Zeit die Verzögerung zwischen Aktionen innerhalb von Iterationen oder Schritten ist. Wie wir bereits erwähnt haben, geht es beim Auslastungstest nicht darum, den Server mit so vielen Anforderungen wie möglich ohne Verzögerung zu treffen, der Testplan mit gewünschtem Durchsatz kann erreicht werden, indem der richtige Wert des Tempos gefunden wird. Darüber hinaus hilft das Tempo zusammen mit der Denkzeit auch, die Benutzererfahrung besser zu simulieren und bietet einen realistischeren Auslastungstest. Es gibt in der Regel einen kurzen Zeitraum zwischen den Iterationen, daher ist es ein wichtiger Faktor, der beim Einrichten der Auslastungstests berücksichtigt werden sollte.

Warum es wichtig ist, Verzögerungen in Auslastungstestszenarien einzuführen

Das Auslastungstesten der Anwendung vor dem Rollout in der vollen Phase erspart uns eine potenzielle schlechte Erfahrung, mit der Endbenutzer mit Problemen wie Timeouts, langsamen Seitenantworten und Ausfallzeiten konfrontiert sind. Um realistischen Auslastungstestergebnissen nahe zu kommen und Probleme zu finden, müssten wir unser Testszenario so realistisch wie möglich gestalten. Die Berücksichtigung von Denkzeit und Tempo in unserem Testszenarioentwurf hilft uns zu testen, wie sich die Warteschlangenverwaltung, Threadauslastung und Speicherverwaltung des Servers unter hoher Last verhalten. Wenn wir z. B. versuchen, die Denkzeit zwischen jeder gleichzeitigen Benutzeraktion hinzuzufügen, neigt der Server während dieser Verzögerung dazu, andere ausstehende Aufgaben aus der Warteschlange auszuwählen, die nächste Aufgabe auszuführen und dann die alte Aufgabe erneut auszuwählen. Dieser Schritt ist genau das, was über die Produktion mit echten Benutzern passiert. Das Hinzufügen von Denkzeit erhöht auch die Zeit, die der Benutzer für die Anwendung aufwendet, wodurch Probleme im Zusammenhang mit der gleichzeitigen Benutzerverarbeitungskapazität des Servers identifiziert werden.

Berechnen von Verzögerungen für Anwendungen

Die Anzahl der gleichzeitigen virtuellen Benutzer, Verzögerungen und Transaktionen pro Sekunde (TPS) variiert für jede Anwendung. Um also zu berechnen, was die Verzögerungen für unsere Anwendung sein sollten, können wir unten Formeln verwenden.

Auslastungstestdauer (in Sekunden) * (TPS + Delays) * Anzahl gleichzeitiger Benutzer = Gesamtzahl der Transaktionen

Nehmen wir an, wir möchten 100.000 Transaktionen generieren, jede Transaktion hat eine Antwortzeit von 5 Sekunden und wir würden den Test für 10 Minuten (600 Sekunden) ausführen. Berechnen wir, wie viele gleichzeitige Benutzer davon ausgehen müssen, ob wir 3 Sekunden Denkzeit in Verzögerungen haben. Mit der obigen Formel können wir die erforderliche Anzahl gleichzeitiger Benutzer berechnen. In unserem Fall wären es 100.000/(8*10*60), was sich auf etwa 21 Benutzer ausdert. Auf diese Weise finden wir die Verzögerungen und Zahlen, die für Auslastungstests erforderlich sind.

Bewährte Methoden vor dem Ausführen eines Auslastungstests

Um die besten und genauesten Ergebnisse aus Leistungstests zu erhalten, sollten wir die folgende Frage beantworten, die sich auf Best Practices während des Auslastungstests konzentriert.

Anzahl der gleichzeitigen Benutzer

Wir müssten verstehen, was erwartete gleichzeitige Benutzer wollen wir unsere Anwendung Benchmark.

Simulieren von echten Benutzertestszenarien

Entwerfen des Testszenarios unter Berücksichtigung der tatsächlichen Benutzerreise, der vom Benutzer verbrachten Zeit und der Verzögerungen zwischen den einzelnen Tests.

Geoverteilte virtuelle Lasten

Lastinjektoren, die Lasten erzeugen, sollten basierend auf bestimmten Geostandorten getrennt werden, wenn erwartet wird, dass unsere Anwendung Datenverkehr aus der ganzen Welt empfängt.

Einrichten des Rampupzeitraums

Das Festlegen des Anlaufzeitraums trägt auch dazu bei, die Skalierung bei der Anwendung schrittweise zu erhöhen, und macht unser Testszenario für das Anwendungsverhalten realistisch.

Testdauer

Die Zeitdauer eines Tests ist wichtig, um zu verstehen, wie sich der Server verhält, wenn er unter kontinuierliche geradlinige Last gestellt wird.

Hinzufügen von Verzögerungen mit LoadView

LoadView enthält den EveryStep Web Recorder, der das Erstellen von Testszenarien erleichtert, indem die von uns in einem Browser ausgeführten Aktionen aufgezeichnet werden. Es imitiert die genauen Schritte und das Verhalten des Benutzers, sammelt alle Datenpunkte, wie Selektoren, Aktionen und Verzögerungen. Bei der Erstellung unseres Testszenarios müssen wir die reale Benutzerreise mit Denkzeitverzögerungen imitieren. Sobald wir die Aufnahme beendet haben, wird ein Skript erstellt, das mit den gewünschten gleichzeitigen Benutzern erneut ausgeführt werden kann. Wie Sie aus dem Bild unten sehen können, können wir auch das Skript ändern und Verzögerungen für einzelne Schritte aktualisieren, je nach Bedarf für den Test. Erfahren Sie mehr über das Bearbeiten von EveryStep Web Recorder-Skripten.

Hinzufügen von Verzögerungen zu Skript

Das entwickelte Skript mit echter Benutzerinteraktion mit Anwendung und Benutzerreise wird als der beste Ansatz betrachtet, der uns helfen kann, genaue Ergebnisse aus dem Auslastungstest zu erzielen.

Benutzerverhaltensprofil

Darüber hinaus haben Sie die Möglichkeit, das Benutzerverhalten über die LoadView-Plattform zu ändern. Wie Sie in der Abbildung unten sehen können, können Sie aus Normal Delay wählen oder Benutzerdefinierte Verzögerung wählen, um ein bestimmtes Benutzerverhalten und Verzögerungen für Ihre Anwendungen festzulegen. Erfahren Sie mehr über das Anpassen des Benutzerverhaltens.

Anpassen des Benutzerverhaltens

Abschiedsgedanken: Lasttests: Think Time, Pacing und Delays

Das Testen einer Anwendung ist ein kritischer Aspekt, bevor wir sie in die Produktion schicken. Es kann uns nur helfen, diese genauen leistungsbezogenen Probleme zu finden, wenn Best Practices befolgt und Testszenarien entwickelt werden, die echte Benutzerreisen auf der Anwendung abdecken. In diesem Artikel haben wir untersucht, wie das Denken von Zeit und Verzögerungen bei der Erstellung des Testszenarioentwurfs dabei helfen kann, die folgenden Probleme des Systems zu finden. Es hilft uns, Probleme wie Seitenzeitüberschreitungen, langsame Seitenantworten, Antwortzeiten und Serverfehler bei hoher Last weit im Voraus zu finden.

Diese Strategien können uns helfen, zu reaktionsschnellen und zuverlässigen Anwendungen und Websites zu gehen. Probieren Sie jetzt den EveryStep Web Recorder aus und erfahren Sie, wie schnell Sie Skripts für Ihre Anwendungen erstellen können.

Registrieren Sie sich noch heute für LoadView und erhalten Sie kostenlose Auslastungstests. Fragen zur LoadView-Plattform? Wenden Sie sich an unser Support-Team, um mit einem unserer Leistungsingenieure zu sprechen.