logo

Leistungstest

In diesem Abschnitt erfahren Sie mehr über Leistungstests, warum wir sie benötigen, Arten von Leistungstests und den Leistungstestprozess.

Im Folgenden sind die Themen aufgeführt, die wir in diesem Abschnitt verstehen werden:

Was ist Leistungstest?

Es ist der wichtigste Teil des nichtfunktionalen Testens.

Das Überprüfen des Verhaltens einer Anwendung durch Aufbringen einer gewissen Last wird als Leistungstest bezeichnet.

Im Allgemeinen definiert dieser Test, wie schnell der Server auf die Anfrage des Benutzers reagiert.

Während wir Leistungstests für die Anwendung durchführen, konzentrieren wir uns auf die verschiedenen Faktoren wie Reaktionszeit, Last und Stabilität der Bewerbung.

Reaktionszeit: Die Antwortzeit ist die Zeit, die der Server benötigt, um auf die Anfrage des Clients zu antworten.

Belastung: Laden bedeutet hier, wann N-Nummer Anzahl der Benutzer, die die Anwendung gleichzeitig nutzen oder die Anfrage gleichzeitig an den Server senden.

Stabilität: Für den Stabilitätsfaktor können wir sagen, dass es sich um eine N-Anzahl von Benutzern handelt, die die Anwendung gleichzeitig für eine bestimmte Zeit nutzen.

Wann verwenden wir Leistungstests?

Wir werden Leistungstests durchführen, sobald die Software stabil ist und in die Produktion überführt wurde. Mehrere Benutzer können gleichzeitig darauf zugreifen. Aus diesem Grund kann es zu Leistungsproblemen kommen. Um diese Leistungsprobleme zu vermeiden, führt der Tester eine Runde Leistungstests durch.

Da es sich um nicht funktionale Tests handelt, was nicht bedeutet, dass wir immer Leistungstests verwenden, führen wir Leistungstests nur durch, wenn die Anwendung funktionsstabil ist.

Hinweis: Leistungstests können nicht manuell durchgeführt werden, da das kostspielige und genaue Ergebnis nicht aufrechterhalten werden kann.

Arten von Leistungstests

Im Folgenden sind die Arten von Leistungstests aufgeführt:

ein vollständiges Formular
    Belastungstest Belastbarkeitstest Skalierbarkeitstests Stabilitätsprüfung
Leistungstest

Lassen Sie uns eins nach dem anderen besprechen, um Ihnen ein umfassendes Verständnis zu vermitteln Last, Stress, Skalierbarkeit, Und Stabilität Leistungstest.

Belastungstest

Der Lasttest wird verwendet, um die Leistung einer Anwendung zu überprüfen, indem eine Last angewendet wird, die entweder kleiner oder gleich der gewünschten Last ist. Dies wird als Lasttest bezeichnet.

Zum Beispiel: Im Bild unten: 1000 Benutzer sind die gewünschte Belastung , die vom Kunden angegeben wird, und 3/Sekunde ist der Ziel was wir bei der Durchführung eines Lasttests erreichen wollen.

Leistungstest

Belastbarkeitstest

Beim Stresstest handelt es sich um einen Test, bei dem das Verhalten einer Anwendung überprüft wird, indem eine Last angewendet wird, die über der gewünschten Last liegt.

Zum Beispiel: Wenn wir das obige Beispiel nehmen und die gewünschte Auslastung von 1000 auf 1100 Benutzer erhöhen, beträgt das Ziel 4/Sekunde. Während der Stresstest in diesem Szenario durchgeführt wird, wird er bestanden, da die Last größer (100 höher) als die tatsächlich gewünschte Last ist.

Leistungstest

Skalierbarkeitstests

Das Überprüfen der Leistung einer Anwendung durch Erhöhen oder Verringern der Last in bestimmten Skalen (Anzahl eines Benutzers) wird als bezeichnet Skalierbarkeitstests . Aufwärts- und Abwärtsskalierbarkeitstests werden als Skalierbarkeitstests bezeichnet.

Das Testen der Skalierbarkeit ist in zwei Teile unterteilt:

    Tests der Aufwärtsskalierbarkeit Tests der Abwärtsskalierbarkeit

Tests der Aufwärtsskalierbarkeit

bash while-Schleife

Es ist ein Test, wo wir sind Erhöhen Sie die Anzahl der Benutzer in einem bestimmten Umfang bis wir einen Absturzpunkt erreichen. Wir werden Aufwärtsskalierbarkeitstests verwenden, um die maximale Kapazität einer Anwendung zu ermitteln.

Tests der Abwärtsskalierbarkeit

Der Abwärtsskalierbarkeitstest wird verwendet, wenn der Lasttest nicht bestanden wird und dann gestartet wird Verringerung der Nr. Anzahl der Benutzer in einem bestimmten Intervall bis das Ziel erreicht ist. Damit der Engpass (Bug) leicht identifiziert werden kann.

Stabilitätsprüfung

Überprüfen der Leistung einer Anwendung durch Aufbringen der Last für eine bestimmte Zeitdauer ist bekannt als Stabilitätsprüfung .

Beispiel für Leistungstests

Nehmen wir ein Beispiel, wo wir wollen Testen Sie das Verhalten einer Anwendung, bei der die gewünschte Auslastung entweder weniger als 1000 oder gleich 1000 Benutzern beträgt .

Im Bild unten können wir sehen, dass 100 aufwärts Benutzer werden kontinuierlich erhöht, um das zu überprüfen Maximale Last , was auch genannt wird Tests der Aufwärtsskalierbarkeit .

    Szenario 1:Wenn wir die gewünschte Auslastung von 1000 Benutzern haben und die Zielzeit 2,7/Sek. ist, werden diese Szenarien bei der Durchführung des Auslastungstests bestanden, da wir uns beim Auslastungstest auf die Nr. konzentrieren. Anzahl der Benutzer, und je nach Anforderung beträgt sie 1000 Benutzer.Szenario2:Im nächsten Szenario erhöhen wir die gewünschte Auslastung um 100 Benutzer und die Zielzeit erhöht sich auf 3,5 Sekunden. Dieses Szenario wird bestehen, wenn wir Stresstests durchführen, da hier die tatsächliche Last größer (1100) als die gewünschte Last (1000) ist.Szenario 3:In diesem Fall erhöhen wir die gewünschte Last um das Dreifache
    1200 → 3,5sec: [Es ist nicht kleiner oder gleich der gewünschten Last, deshalb wird es so sein Scheitern ]
    1300 → 4sec: [sie ist nicht kleiner oder gleich der gewünschten Last. d.h., Scheitern ]
    1400 → abgestürzt
Leistungstest

Hinweis 1: Volumen- und Einweichtests sind eine Testart, jedoch keine Leistungstests.

Volumentest

Beim Volumentest handelt es sich um einen Test, der uns dabei hilft, das Verhalten einer Anwendung zu überprüfen, indem wir eine große Lastmenge in Form von Daten einfügen. Dies wird als Volumentest bezeichnet. Hier konzentrieren wir uns auf die Anzahl der Datenraten und nicht auf die Anzahl der Benutzer .

Anmerkung 2:
Volumen ist eine Kapazität, während Last eine Menge ist, d. h. Lasttests bedeuten Nein. Anzahl der Benutzer, und Volumentests bedeuten Datenmenge.

Einweichtest

Bei dieser Art von Tests überprüfen wir das Verhalten einer Anwendung in der Umgebung, das über einen längeren Zeitraum nicht unterstützt. Dies wird als Soak-Test bezeichnet.

Im Allgemeinen handelt es sich bei Soak-Tests um eine negative Testart, da wir bereits wissen, dass der Server oder die Umgebung keine Unterstützung bietet.

Leistungstestprozess

Der Leistungstest kann nicht manuell durchgeführt werden, da:

  • Wir benötigen viele Ressourcen und der Ansatz wurde teurer.
  • Und die Genauigkeit kann nicht aufrechterhalten werden, wenn wir die Reaktionszeit manuell verfolgen.

Der Leistungstestprozess wird in den folgenden Schritten abgeschlossen:

  • Identifizieren Sie Leistungsszenarien
  • Planen und entwerfen Sie ein Leistungstestskript
  • Konfigurieren Sie die Testumgebung und verteilen Sie die Last
  • Testskripte ausführen
  • Ergebnis
  • Analyseergebnis
  • Identifizieren Sie den Engpass
  • Führen Sie den Test erneut durch
Leistungstest

Wenn wir eine durchführen positiver Fluss Der Leistungstestprozess könnte wie folgt ablaufen:

Identifizieren Sie Leistungsszenarien

Zunächst werden wir die Leistungsszenarien anhand der folgenden Faktoren identifizieren:

Die häufigsten Szenarien: Das bedeutet, dass wir die Leistungsszenarien basierend auf den Szenarien finden können, die häufig verwendet werden, wie z Gmail-Anwendung; wir werden auftreten Anmelden, Posteingang, Senden von Elementen, Verfassen einer E-Mail und Abmelden .

Kritischste Szenarien: Kritische Szenarien bedeuten eine regelmäßig genutzte und für den Geschäftsbetrieb wichtige Gmail-Anwendung Anmelden, Verfassen, Posteingang und Abmelden .

Brenner installieren

Riesige Datentransaktion: Wenn wir über große Datenmengen verfügen, bedeutet dies, dass die Anzahl der Benutzer die Anwendung gleichzeitig nutzt.

Sobald wir die Leistungsszenarien identifiziert haben, fahren wir mit dem nächsten Schritt fort.

Planen und entwerfen Sie ein Leistungstestskript

In diesem Schritt installieren wir die Tools auf der Test Engineer-Maschine und greifen auf den Testserver zu. Anschließend schreiben wir ein Skript entsprechend den Testszenarien und führen das Tool aus.

Sobald wir mit dem Schreiben des Skripts fertig sind, fahren wir mit dem nächsten Schritt fort.

Konfigurieren Sie die Testumgebung und verteilen Sie die Last

Nachdem wir die Testskripte geschrieben haben, richten wir vor der Ausführung die Testumgebung ein. Verwalten Sie außerdem die Tools und anderen Ressourcen und verteilen Sie die Last entsprechend dem „Nutzungsmuster“ oder erwähnen Sie die Dauer und Stabilität.

Testskripte ausführen

Sobald wir mit der Lastverteilung fertig sind, werden wir die Testskripte ausführen, validieren und überwachen.

Ergebnis

Nach Ausführung der Testskripte erhalten wir das Testergebnis. Und prüfen Sie, ob das Ergebnis das Ziel in der angegebenen Reaktionszeit erreicht oder nicht. Die Reaktionszeit kann maximal, durchschnittlich und minimal sein.

Wenn die Antwort nicht die erforderliche Reaktionszeit einhält, werden wir uns für die Antwort entscheiden negativer Fluss Wo werden die folgenden Schritte ausgeführt:

Analyseergebnis

Zunächst analysieren wir das Testergebnis, ob es der Reaktionszeit entspricht oder nicht.

Identifizieren Sie den Engpass

Danach werden wir die identifizieren Engpass (Fehler oder Leistungsproblem). ). Und der Engpass könnte aufgrund dieser Aspekte auftreten Problem im Code, Hardwareproblem (Festplatte, RAM-Prozessor), Netzwerkprobleme, und das Softwareproblem (Betriebssystem) . Und nachdem wir den Engpass gefunden haben, werden wir die Leistung erbringen Tuning (Fix oder Anpassung) um diesen Engpass zu beheben.

Führen Sie den Test erneut durch

Sobald wir die Engpässe behoben haben, führen wir die Testskripte erneut aus und überprüfen das Ergebnis, ob es das erforderliche Ziel erreicht oder nicht.

Das Problem tritt beim Leistungstest auf

Beim Durchführen von Leistungstests für die Anwendung können einige Probleme auftreten, die auch als „Probleme“ bezeichnet werden Leistungsproblem .

Die Leistungsprobleme sind wie folgt:

    Problem mit der Reaktionszeit Problem mit der Skalierbarkeit Engpass Geschwindigkeitsproblem

Problem mit der Reaktionszeit

Die Antwortzeit gibt an, wie schnell der Server auf die Anfrage des Clients reagiert. Wenn die Anfrage des Benutzers nicht innerhalb der angegebenen Antwortzeit abgeschlossen wird, kann es sein, dass der Benutzer sein Interesse an der jeweiligen Software oder Anwendung verliert. Aus diesem Grund sollte die Anwendung oder Software eine perfekte Reaktionszeit haben, um schnell auf Benutzeranfragen reagieren zu können.

Problem mit der Skalierbarkeit

Die Skalierbarkeitsprobleme treten auf, wenn die Anwendung die n-Anzahl von Benutzern und die erwarteten Benutzeranforderungen nicht gleichzeitig verarbeiten kann. Deshalb werden wir es tun Tests der Aufwärtsskalierbarkeit (überprüfen Sie die maximale Kapazität der Anwendung) und Abwärtsskalierbarkeitstests (wenn die erwartete Zeit nicht mit der tatsächlichen Zeit übereinstimmt).

Engpass

Der Flaschenhals ist die informelle Bezeichnung für einen Fehler, der auftritt, wenn die Anwendung durch eine einzelne Komponente eingeschränkt wird und sich negativ auf die Systemleistung auswirkt.

CSS fett

Die Hauptursachen für Engpässe sind Softwareprobleme (Problem im Zusammenhang mit dem Betriebssystem), Hardwareprobleme (Probleme im Zusammenhang mit der Festplatte, dem RAM und dem Prozessor), Und Codierungsproblem, usw.

Im Folgenden sind die häufigsten Leistungsengpässe aufgeführt:

  • Speichernutzung
  • Festplattennutzung
  • CPU-Auslastung
  • Einschränkungen des Betriebssystems
  • Netzwerkauslastung

Geschwindigkeitsprobleme

Wenn wir Leistungstests für die Anwendung durchführen, sollte die Anwendung schneller sein, um das Interesse und die Aufmerksamkeit des Benutzers zu wecken, denn wenn die Geschwindigkeit der Anwendung langsam ist, kann das Interesse des Benutzers an der Anwendung verloren gehen.

Leistungstesttools

Wir verfügen über verschiedene Arten von Leistungstesttools auf dem Markt, wobei es sich bei einigen um kommerzielle Tools und Open-Source-Tools handelt.

Kommerzielle Tools: LoadRunner[HP], WebLOAD, NeoLoad

Open-Source-Tool: JMeter

LoadRunner

Es handelt sich um eines der leistungsstärksten Tools für Leistungstests, das zur Unterstützung von Leistungstests für eine Vielzahl von Protokollen, eine Vielzahl von Technologien und Anwendungsumgebungen verwendet wird.

Es identifiziert schnell die häufigsten Ursachen für Leistungsprobleme. Außerdem können Sie die Skalierbarkeit und Kapazität der Anwendung genau vorhersagen.

JMeter

Die Apache JMeter-Software ist ein Open-Source-Tool, bei dem es sich um eine reine Java-Anwendung handelt, die zum Laden des Funktionstestverhaltens und zum Messen der Leistung entwickelt wurde.

Im Allgemeinen war es zum Testen von Webanwendungen konzipiert, wurde aber nun auch um andere Testfunktionen erweitert.

Apache JMeter wird zum Testen der Leistung sowohl für statische als auch dynamische Ressourcen und dynamische Webanwendungen verwendet.
Es kann verwendet werden, um die hohe Belastung eines Servers, Netzwerks oder Objekts oder einer Gruppe von Servern zu reproduzieren, um deren Stärke zu testen oder um die Gesamtleistung unter verschiedenen Lasttypen zu analysieren.

WebLOAD

WebLOAD-Testtool zum Testen von Lasttests, Leistungstests und Stresstests für Webanwendungen.

Das WebLOAD-Tool vereint Leistung, Skalierbarkeit und Integrität in einem einzigen Prozess zur Verifizierung von Web- und mobilen Anwendungen.

NeoLoad

Neotys entwickelt ein Testtool namens NeoLoad. Das NeoLoad wird zum Testen der Leistungstestszenarien verwendet. Mit Hilfe von NeoLoad können wir die Engpässe im Web und im Entwicklungsprozess mobiler Apps finden.

Das NeoLoad-Testtool ist im Vergleich zu herkömmlichen Tools schneller.

Abgesehen davon gibt es noch einige andere Tools Elektrische Last, Web-Stress-Tool, LoadUI Pro, StresStimulus, LoadView, LoadNinja und RedLine13, Dies hilft, die Leistung der Software oder einer Anwendung zu testen.