Leistungsprüfung von Websites

Leistungsprüfung von Websites
MIN
12 Jan. 2024

In diesem Tutorial werden wir einen Plan zum Testen der Leistung von Webanwendungen erstellen, mit dem wir die Leistung von Webanwendungen mit JMeter testen können. Sie lernen auch die verschiedenen Elemente des Testplans kennen, die zur Erstellung eines Testskripts erforderlich sind, sowie deren Verwendung und Konfiguration.

Inhaltsübersicht

Voraussetzungen für Leistungstests

Bei der Erstellung eines Plans zum Testen der Leistung einer Webanwendung sollten Sie die folgenden Dinge im Voraus beherrschen:

  1. Kenntnis von Geschäftsanwendungsszenarien.
  2. Eine Anwendungsinstanz, die für Leistungstests mit produktionsähnlichen Konfigurationen und Zuständen entwickelt wurde.
  3. Liste der für Leistungstests ausgewählten Szenarien (da nicht alle Szenarien einem Belastungstest unterzogen werden müssen).
  4. Die Spitzenlast in der Produktion oder der voraussichtliche Wert der Spitzenlast.
  5. Die Verteilung der Nutzer in verschiedenen Szenarien, da einige Szenarien häufiger genutzt werden als andere. Daher werden den verschiedenen Szenarien unterschiedliche Nutzerzahlen zugeordnet.
  6. Der Wert der Denkzeit oder der Wartezeit, die zwischen einigen Vorgängen einzurechnen ist, um reale Benutzer zu simulieren – Denkzeit, Tippzeit, Lese- und Informationsverarbeitungszeit, usw.
  7. Eine aus den Testergebnissen abzuleitende Leistungskennzahl, z. B. Antwortzeit, Anzahl der Aufrufe pro Sekunde usw.

Schritte zur Erstellung von Leistungstestskripten

Um einen Testplan für die Leistung einer Webanwendung zu erstellen, müssen Sie die folgenden Schritte durchführen:

  1. Erstellen Sie ein Skeleton-Testskript mit einem konfigurierten Testplan, Thread-Gruppen und Logik-Controllern.
  2. Erstellung oder Protokollierung von HTTP-Anfragen über den HTTP-Proxy.
  3. Fügen Sie Timer hinzu, um Wartezeiten oder Bedenkzeiten zwischen Anfragen einzuführen.
  4. Fügen Sie Listener zum Speichern und Analysieren von Testergebnissen hinzu.
  5. Führen Sie einen Probelauf mit 1 oder 2 Benutzern durch.
  6. Konfigurieren Sie einen Stresstest mit der erforderlichen Anzahl von Benutzern und führen Sie ihn durch.
  7. Durchführen und Analysieren der Testergebnisse.

Sehen wir uns nun an, wie wir jeden der oben genannten Schritte im Detail durchführen können.

Erstellung des Grundgerüsts des Testskripts

Je nach der Anzahl der Benutzergruppen, die für die Durchführung verschiedener Vorgänge erforderlich sind, werden wir unserem Testplan Thread-Gruppen und Logik-Controller hinzufügen. Ein Beispiel: Zwei Gruppen von Nutzern führen auf einer Webseite Such- und Anmeldevorgänge durch.

Dann erstellen wir zwei Thread-Gruppen und fügen verschiedene Logik-Controller hinzu, um verschiedene von Benutzern ausgeführte Operationen zu simulieren. Zu unternehmende Schritte:

  • Fügen Sie dem Testplan eine Gruppe von Threads hinzu und nennen Sie sie UsersSearchingKeywords.
  • Fügen Sie mehrere Transaktionscontroller als Kinder dieser Thread-Gruppe hinzu und benennen Sie sie nach den Operationen, die sie ausführen, z. B. „Anwendung starten“, „Schlüsselwort suchen und Enter drücken“, „Anwendung schließen“.
  • Fügen Sie eine weitere Gruppe von Threads hinzu und nennen Sie sie UsersLogin.
  • Fügen Sie dieser Thread-Gruppe Transaktionssteuerungen hinzu, z. B. „Anwendung starten“, „Auf Anmeldelink klicken“, „Anmeldedaten eingeben und auf die Schaltfläche Senden klicken“.
  • Konfiguration hinzufügen

Unser Testplan wird folgendermaßen aussehen:

Beachten Sie, dass wir hier einen Transaktionscontroller verwendet haben, weil wir mehrere HTTP-Anfragen innerhalb dieses Controllers haben können und wir die Gesamtantwortzeit der gesamten Transaktion erhalten, nachdem der Test durchgeführt wurde, was wünschenswert ist. Je nach Szenario können wir auch verschiedene logische Steuerungen hinzufügen, wie z. B. eine Zyklussteuerung, eine Zufallssteuerung usw.

Erstellen oder Protokollieren von HTTP-Anfragen

Wenn wir einen Vorgang ausführen, z. B. auf eine Schaltfläche klicken, werden mehrere HTTP-Anfragen an den Server gesendet. Bei der Skripterstellung müssen wir alle diese Anfragen erstellen, damit wir die Zeit bestimmen können, die für die Bearbeitung der Anfragen benötigt wird.

Eine Möglichkeit, dies zu tun, besteht darin, verschiedene HTTP-Anfragen hinzuzufügen und sie mit Werten wie URL, Port, Anfragetyp (Get, Put, Post, Delete usw.), Request Body, Request Header usw. zu konfigurieren. Dies kann jedoch sehr mühsam sein, es sei denn, wir müssen nur sehr wenige Anfragen testen oder eine bestimmte HTTP-Anfrage.

Um dies effizient zu tun, bietet JMeter das HTTP(s)-Testskript-Rekorder-Tool, mit dem wir Skripte direkt in JMeter aufzeichnen können, indem wir Operationen im Browser durchführen.

Wenn wir mit der Aufzeichnung von Skripten beginnen, können wir einen Transaktionscontroller, wie z. B. „Anwendung starten“, aus dem Ziel-HTTP(s)-Testskript-Recorder-Controller auswählen und Vorgänge wie das Starten einer Webanwendung im konfigurierten Browser oder das Hinzufügen verschiedener HTTP-Anfragen zum ausgewählten Controller durchführen.

Hinzufügen von Zeitschaltuhren

Wir können Timer zwischen zwei Transaktionscontrollern einfügen, um eine Denkzeit einzuführen, z. B. können wir einen Timer mit einem Timeout-Wert von 3 Sekunden zwischen den Controllern „Launch Application“ und „Search Keyword“ einfügen, um die Zeit zu simulieren, die der Benutzer braucht, um die Antwort zu verarbeiten und das Schlüsselwort für die Suche einzugeben.

Hörer hinzufügen

Wir können verschiedene Arten von Listenern zum Speichern und Analysieren von Testergebnissen verwenden, die wir in unserem Tutorial – Listener in JMeter – untersucht haben.

Trockenlauftest

Bevor wir den Test mit der tatsächlichen Anzahl von Benutzern durchführen, müssen wir den Test mit einer sehr kleinen Anzahl von Benutzern trocken durchführen, um die Korrektheit des Skripts zu überprüfen.

Konfigurieren und Planen eines Stresstests

Nach der Validierung der Skripte konfigurieren wir den Stresstest mit der erforderlichen Anzahl von Benutzern und planen den Stresstest.

Durchführung und Auswertung des Tests

Sobald die Erstellung und Konfiguration des Testskripts abgeschlossen ist, führen Sie den Test aus, indem Sie auf das Abspielsymbol klicken oder die Tastenkombination Strg+r drücken. Wir werden den Server parallel überwachen, während der Test läuft. Nach Abschluss des Tests können wir die Testergebnisse speichern und auswerten.

Schlussfolgerung

Jetzt haben wir den grundlegenden Testplan für die Webanwendung gesehen, aber es gibt noch ein paar Dinge, die zu beachten sind:

  1. Während der Tests sollten wir keine Werte wie Suchbegriffe und Benutzeranmeldedaten usw. eingeben. Zu diesem Zweck müssen wir die Testskripte parametrisieren.
  2. Die Erstellung dynamischer Skripte und die Manipulation von Sitzungsvariablen ist ein weiterer Punkt, der bei der Skripterstellung zu berücksichtigen ist. Um diese Probleme zu lösen, haben wir das Konzept der Korrelation.