So führen Sie Stresstests für Projekte durch

Inhaltsverzeichnis

I. Einleitung

2. Grundkenntnisse

1. Was ist Stresstest?

2. Schritte des Stresstests

abstrakte Schritte

Produktionsschritte

3. Vorsichtsmaßnahmen

4. Mehrere beliebte Stresstest-Tools

(1)JMeter

(2)LoadRunner

(3) Andere Testwerkzeuge

3. Praktische Bedienung

1.Installieren Sie Jmeter

2. Projektstresstest

Erstellen Sie eine Thread-Gruppe

 Konfigurationselement

 HTTP-Anfrage hinzufügen

 Listener hinzufügen

 Führen Sie Tests durch

 4. Zusammenfassung


I. Einleitung

Im täglichen Entwicklungsprozess müssen wir häufig entsprechende Stresstests für das Projekt durchführen, um verschiedene Indikatoren des Projekts wie QPS, Laufzeit usw. zu messen.

Einige Indikatoren im Zusammenhang mit Stresstests:

QPS (Abfragen pro Sekunde): Die Anzahl der Abfragen, die pro Sekunde beantwortet werden können, was der maximalen Durchsatzkapazität (Durchsatz) entspricht.
TPS (Transaktionen pro Sekunde): Die Anzahl der pro Sekunde verarbeiteten Transaktionen. Eine Transaktion bezieht sich auf den Prozess, bei dem ein Client eine Anfrage an den Server sendet und der Server antwortet. Der TPS-Prozess umfasst: Der Client fordert den Server an, der Server führt eine interne Verarbeitung durch und der Server kehrt zum Client zurück.
Wenn Sie beispielsweise auf eine Seite zugreifen, wird der Server dreimal angefordert. Beim Zugriff auf diese Seite werden dann ein TPS und drei QPS generiert.

Daher fasst dieser Artikel gängige Stresstestschritte zusammen und hofft, den Lesern dabei zu helfen, sich besser mit stresstestbezogenen Vorgängen vertraut zu machen.

2. Grundkenntnisse

1. Was ist Stresstest?

Software-Stresstests sind eine grundlegende Qualitätssicherungsmaßnahme, die Teil jeder wichtigen Softwaretestmaßnahme ist. Die Grundidee von Software-Stresstests ist einfach: Anstatt manuelle oder automatisierte Tests unter normalen Bedingungen durchzuführen, führen Sie die Tests unter Bedingungen durch, bei denen die Anzahl der Computer gering oder die Systemressourcen knapp sind. Zu den Ressourcen, die typischerweise Software-Stresstests unterliegen, gehören der interne Speicher, die CPU-Verfügbarkeit, der Festplattenspeicher und die Netzwerkbandbreite.

Stresstests umfassen Leistungstests, Lasttests, Parallelitätstests usw. Diese Testpunkte sind häufig miteinander verflochten und gekoppelt.

Wie der Name schon sagt: Beim Stresstest wird das System unter einem bestimmten Zugriffsdruck getestet, um festzustellen, ob das Programm stabil läuft/der Server stabil läuft (Ressourcenbelegung).

Beispiel: Wenn 2.000 Benutzer gleichzeitig auf einer Shopping-Website einkaufen, verlangsamt sich dann die Seitenöffnungsgeschwindigkeit dieser Benutzer oder stürzt die Website ab?

2. Schritte des Stresstests

abstrakte Schritte

  1. Testziele und Indikatoren definieren : Bestimmen Sie die Ziele und Indikatoren, die während des Tests erreicht werden müssen, wie z. B. Systemdurchsatz, Reaktionszeit, Anzahl der Verbindungen usw.

  2. Entwickeln Sie einen Testplan : Formulieren Sie basierend auf den Testzielen und -indikatoren einen Testplan, einschließlich Testszenarien, Lastmodellen, Testdaten usw.

  3. Bereiten Sie die Testumgebung vor : Richten Sie eine Testumgebung ein, einschließlich Hardware, Software, Netzwerk usw., um sicherzustellen, dass die Testumgebung der Produktionsumgebung ähnelt.

  4. Führen Sie einen Aufwärmtest durch : Führen Sie vor dem offiziellen Test einen Aufwärmtest durch, um die Stabilität und Genauigkeit der Umgebung zu testen.

  5. Lasttests durchführen : Lasttests gemäß Testplan durchführen, Daten verschiedener Indikatoren aufzeichnen und analysieren.

  6. Testergebnisse analysieren : Analysieren Sie anhand der Testdaten die Engpässe und Schwächen des Systems und legen Sie Optimierungspläne fest.

  7. Optimieren Sie das System : Führen Sie eine Systemoptimierung basierend auf Testanalyseergebnissen durch, einschließlich Hardware-Upgrades, Software-Tuning usw.

  8. Wiederholen Sie Tests : Führen Sie mehrere Tests durch, um sicherzustellen, dass die Systemleistung stabil und zuverlässig ist.

Produktionsschritte

(1) Bestimmen Sie den Umfang der Bestandsdaten (Benutzer benötigen im Allgemeinen die Erstellung von Bestandsdaten für 3-5 Jahre);

(2) Bestimmen Sie die Unternehmen, die einem Stresstest unterzogen werden müssen (im Allgemeinen die Unternehmen, die am häufigsten von Benutzern genutzt werden oder über komplexe Geschäftsabläufe verfügen);

(3) Bestimmen Sie die Anzahl der Betriebsbenutzer und den Anteil verschiedener Arten von Betriebsbenutzern.

(4) Anforderungen an das Spitzengeschäftsvolumen (im Allgemeinen die maximale Anzahl von Transaktionen, die in einer Stunde verarbeitet werden müssen);

(5) Anforderungen an die Echtzeit-Reaktionszeit eines Unternehmens (z. B. die Verarbeitungszeit eines einzelnen Unternehmens (z. B. weniger als 60 Sekunden) unter Spitzenbedingungen);

(6) Zeitbedarf für den Batch-Verarbeitungsprozess (z. B. die Zeit für die Tagesendverarbeitung (Monatsende, Jahresende) und die Batch-Datenübertragung mit externen Systemen).

Die oben genannten Informationen müssen in der Regel vom Geschäftspersonal ermittelt werden.

Zur technischen Vorbereitung des Stresstests werden folgende Informationen benötigt:

(1) Systemumrissentwurf (die technische Architektur des Systems verstehen und Testmethoden festlegen);

(2) Wenn Sie das Schnittstellenprogramm selbst entwickeln, müssen Sie die Spezifikationen der Schnittstellennachricht verstehen.

(3) Datenbankdesign (wir müssen entsprechende Programme schreiben und vorhandene Daten vorbereiten).

Um Skripte zu entwickeln, müssen Sie die folgenden Informationen kennen:

(1) Bedienungsanleitung (Skripteingabe oder manuelle Skriptentwicklung);

(2) Parametrisiertes Skript (dynamische Daten müssen verknüpft werden);

(3) Skriptwiedergabe (überprüfen Sie, ob das Skript erfolgreich Daten erstellen kann).

Testszenarien:

(1) Einzelner Benutzer, der ein Stresstestszenario ausführt;

(2) Führen Sie das Testszenario mit mehreren Benutzern aus und überprüfen Sie den Systemressourcenverbrauch. Anschließend beginnen andere Optimierungsarbeiten.

Darüber hinaus gibt es auch Testumgebungsdinge, die implementiert werden müssen. Stresstests erfordern im Allgemeinen eine relativ hohe Umgebungskonfiguration, die mit der Produktionsumgebung übereinstimmen oder dieser nahe kommen sollte.
 

3. Vorsichtsmaßnahmen

  1. Die Testlast sollte dem tatsächlichen Nutzungsszenario möglichst nahe kommen, um eine künstliche Erzeugung unrealistischer Testlasten zu vermeiden.

  2. Testdaten müssen authentisch und glaubwürdig sein und so weit wie möglich echte Daten oder Daten verwenden, die echten Daten ähneln.

  3. Die Testumgebung sollte der Produktionsumgebung ähneln, einschließlich Hardware, Netzwerk, Software usw.

  4. Die Testergebnisse sollten statistisch umfassend sein, die Systemleistung aus mehreren Blickwinkeln analysieren und die Engpässe und Schwächen des Systems ermitteln.

  5. Testergebnisse müssen objektiv sein, um subjektive Fehleinschätzungen und menschliche Eingriffe zu vermeiden.

4. Mehrere beliebte Stresstest-Tools

(1)JMeter

Apache JMeter ist ein Java-basiertes Stresstest-Tool, das von der Apache-Organisation für Stresstest-Software entwickelt wurde. Es wurde ursprünglich für das Testen von Webanwendungen entwickelt, wurde aber später auf andere Testbereiche ausgeweitet. Es kann zum Testen statischer und dynamischer Ressourcen wie statischer Dateien, Java-Servlets, CGI-Skripte, Java-Objekte, Datenbanken, FTP-Server usw. verwendet werden.

Mit JMeter können enorme Belastungen von Servern, Netzwerken oder Objekten simuliert, deren Stärke getestet und die Gesamtleistung unter verschiedenen Belastungskategorien analysiert werden.

Darüber hinaus kann JMeter funktionale Regressionstests von Anwendungen durchführen, indem es Skripte mit Behauptungen erstellt, um zu überprüfen, ob Ihr Programm die erwarteten Ergebnisse liefert.

Für maximale Flexibilität ermöglicht JMeter die Erstellung von Behauptungen mithilfe regulärer Ausdrücke.

(2)LoadRunner

LoadRunner ist ein automatisches Lasttest-Tool von HP, das das Systemverhalten vorhersagen und die Leistung optimieren kann. LoadRunner konzentriert sich auf das gesamte Unternehmenssystem. Es hilft, Probleme schneller zu identifizieren und zu finden, indem es das tatsächliche Benutzerverhalten simuliert und eine Echtzeit-Leistungsüberwachung durchführt. Darüber hinaus kann LoadRunner die unterschiedlichsten Protokolle und Technologien unterstützen und so maßgeschneiderte Lösungen bereitstellen.

(3) Andere Testwerkzeuge

Siege ist ein Open-Source-Stresstest-Tool, das je nach Konfiguration den gleichzeitigen Zugriff mehrerer Benutzer auf eine WEB-Site durchführen kann.

Für jeden Benutzer wird die entsprechende Zeit aller Anfragevorgänge erfasst und bei einer bestimmten Anzahl gleichzeitiger Zugriffe wiederholt.

TCPCopy ist ein Tool zum Kopieren von Anforderungen (alle TCP-basierten Pakete), das Online-Anfragen in das Testsystem importieren kann.

Das Besondere an TCPCopy ist, dass es echten Online-Verkehr kopieren und Benutzerdaten simulieren kann.
 

3. Praktische Bedienung

1.Installieren Sie Jmeter

  1. Offizielle jmeter-Website: https://jmeter.apache.org
  2. Geben Sie nach der Dekomprimierung das bin-Verzeichnis ein und starten Sie das Programm mit jmeter.bat. (Hinweis: Da JMeter in JAVA geschrieben ist, müssen Sie vor der Verwendung von JMeter zunächst die JAVA-Umgebung installieren. Sie müssen sie selbst suchen und installieren.)
  3. Wechseln Sie zur chinesischen Anzeige: Optionen -> Sprache auswählen Wechseln Sie zu vereinfachtem Chinesisch

2. Projektstresstest

Der Projektstresstest umfasst Webprogramm + Datenbank + Cache + andere Indikatoren, die die Gesamtleistung des Projekts widerspiegeln und von Referenzwert sind. Wenn die Programmleistung relativ niedrig ist, können Sie Stresstests für andere Indikatoren durchführen, um die Gründe herauszufinden (In der Regel kommt es zu Leistungsengpässen in der Datenbank).

Erstellen Sie eine Thread-Gruppe

Klicken Sie mit der rechten Maustaste auf „Testplan“ [Hinzufügen] -> [Thread (Benutzer)] -> [Thread-Gruppe]

Fügen Sie hier eine Bildbeschreibung ein

 Legen Sie die Anzahl der Threads und die Anzahl der Schleifen fest. Hier stelle ich die Anzahl der Threads auf 1000 ein und mache eine Schleife 10 Mal.

 Konfigurationselement

Klicken Sie mit der rechten Maustaste auf die Thread-Gruppe [Hinzufügen] -> [Konfigurationskomponente] -> [Standardwert für HTTP-Anforderung]

 Konfigurieren Sie die Standardwerte für HTTP-Anfragen: Protokoll, Dienst-IP, Port

 HTTP-Anfrage hinzufügen

Klicken Sie mit der rechten Maustaste auf „Thread-Gruppe“ [Hinzufügen->[Sampler]->[HTTP-Anfrage]

Fügen Sie hier eine Bildbeschreibung ein

 Pfad und Daten festlegen (Parameter können in einfache Typen eingegeben werden und Nachrichtentextdaten können in JSON eingegeben werden)

 Wenn es sich um JSON-Daten handelt, müssen Sie einen HTTP-Header-Manager hinzufügen.
Klicken Sie mit der rechten Maustaste auf die Thread-Gruppe [Hinzufügen] -> [Konfigurationskomponente] -> [HTTP-Header-Manager] und fügen Sie Content-Type: application/json hinzu

Fügen Sie hier eine Bildbeschreibung ein

 Listener hinzufügen

(Die Screenshots hier sind nach dem Test)

Klicken Sie mit der rechten Maustaste auf die Thread-Gruppe [Hinzufügen] -> [Listener] -> [Aggregationsbericht].

Fügen Sie hier eine Bildbeschreibung ein

 Klicken Sie mit der rechten Maustaste auf die Thread-Gruppe [Hinzufügen] -> [Listener] -> [Ergebnisbaum anzeigen]

Fügen Sie hier eine Bildbeschreibung ein

 Führen Sie Tests durch

Die grüne Schaltfläche im Bild unten startet die Ausführung. Wenn Sie die Ausführung erneut durchführen möchten, müssen Sie das letzte Ergebnis löschen.

Fügen Sie hier eine Bildbeschreibung ein


 4. Zusammenfassung

Bevor das Projekt online geht, müssen wir einen Stresstest durchführen. Der Zweck besteht darin, zu sehen, wie viel Druck unsere Website aushält und wie viel Parallelität sie aushält. Wenn wir keinen Stresstest durchführen, wird unsere Website einmal abstürzen Es herrscht viel Verkehr. Daher sind Stresstests wirklich wichtig und sollten ernst genommen werden!

Acho que você gosta

Origin blog.csdn.net/Clearlove_S7/article/details/132437392
Recomendado
Clasificación