11. Erstellen eines Testplans für JMS-Themen

Für JMS müssen einige optionale JAR-Dateien heruntergeladen werden. Ausführliche Informationen finden Sie unter Erste Schritte .

In diesem Abschnitt erfahren Sie, wie Sie einen Testplan zum Testen von JMS-Providern erstellen. Sie erstellen fünf Abonnenten und einen Herausgeber. Sie erstellen 2 Thread-Gruppen und legen jede auf 10 Iterationen fest. Die Gesamtzahl der Nachrichten beträgt (6 Threads) x (1 Nachricht) x (10 Mal wiederholen) = 60 Nachrichten. Um den Testplan zu erstellen, verwenden Sie die folgenden Elemente: Thread Group , JMS Publisher , JMS Subscriber und Graph Results .

Allgemeine Hinweise zu JMS: Derzeit gibt es zwei JMS-Sampler. Einer verwendet JMS-Themen und der andere Warteschlangen. Themennachrichten werden allgemein als Pub/Sub-Nachrichten bezeichnet. Themennachrichten werden im Allgemeinen in Fällen verwendet, in denen eine Nachricht von einem Produzenten veröffentlicht und von mehreren Abonnenten konsumiert wird. Queue Messaging wird im Allgemeinen für Transaktionen verwendet, bei denen der Absender eine Antwort erwartet. Messaging-Systeme unterscheiden sich stark von normalen HTTP-Anforderungen. Bei HTTP sendet ein einzelner Benutzer eine Anfrage und erhält eine Antwort. Das Messaging-System kann im synchronen und asynchronen Modus arbeiten. Ein JMS-Sampler benötigt die JMS-Implementierungs-JAR-Dateien; zum Beispiel von Apache ActiveMQ. Hier finden Sie die Liste der von ActiveMQ bereitgestellten JAR-Dateien.

11.1 Benutzer hinzufügen ¶

Der erste Schritt besteht darin, ein Thread Group- Element hinzuzufügen. Die Thread-Gruppe teilt JMeter mit, wie viele Benutzer Sie simulieren möchten, wie oft die Benutzer Anfragen senden sollen und wie viele Anfragen sie senden sollen.

Fahren Sie fort und fügen Sie das ThreadGroup-Element hinzu, indem Sie zuerst den Testplan auswählen, mit der rechten Maustaste klicken, um das Menü „Hinzufügen“ aufzurufen, und dann Hinzufügen “  →  „ThreadGroup“ auswählen .

Sie sollten jetzt das Element Threadgruppe unter Testplan sehen. Wenn Sie das Element nicht sehen, „erweitern“ Sie die Testplanstruktur, indem Sie auf das Element Testplan klicken.

Als nächstes müssen Sie die Standardeigenschaften ändern. Wählen Sie das Element Thread Group in der Baumstruktur aus, falls Sie es noch nicht ausgewählt haben. Sie sollten jetzt das Thread Group Control Panel im rechten Bereich des JMeter-Fensters sehen (siehe Abbildung 11.1 unten).


Abbildung 11.1.  Thread-Gruppe mit Standardwerten
Abbildung 11.1. Thread-Gruppe mit Standardwerten

Geben Sie zunächst einen aussagekräftigeren Namen für unsere Thread-Gruppe an. Geben Sie im Namensfeld Abonnenten ein .

Erhöhen Sie als Nächstes die Anzahl der Benutzer (genannt Threads) auf 5 .

Stellen Sie im nächsten Feld Ramp-Up Period den Wert auf 0 Sekunden ein. Diese Eigenschaft teilt JMeter mit, wie lange zwischen dem Starten jedes Benutzers gewartet werden soll. Wenn Sie beispielsweise eine Ramp-Up-Periode von 5 Sekunden eingeben, beendet JMeter den Start aller Ihrer Benutzer am Ende der 5 Sekunden. Wenn wir also 5 Benutzer und eine Anlaufphase von 5 Sekunden haben, beträgt die Verzögerung zwischen dem Start von Benutzern 1 Sekunde (5 Benutzer / 5 Sekunden = 1 Benutzer pro Sekunde). Wenn Sie den Wert auf 0 setzen, startet JMeter sofort alle Benutzer.

Deaktivieren Sie das Kontrollkästchen „ Forever “ und geben Sie im Feld „Loop Count “ den Wert 10 ein. Diese Eigenschaft teilt JMeter mit, wie oft der Test wiederholt werden soll. Wenn Sie einen Schleifenzählerwert von 0 eingeben , führt JMeter Ihren Test nur einmal aus. Damit JMeter Ihren Testplan wiederholt ausführt, aktivieren Sie das Kontrollkästchen Forever .

Wiederholen Sie den Vorgang und fügen Sie eine weitere Threadgruppe hinzu. Geben Sie für die zweite Thread-Gruppe " Publisher " in das Namensfeld ein, legen Sie die Anzahl der Threads auf 1 und die Iteration auf 10 fest .

In den meisten Anwendungen müssen Sie Änderungen, die Sie in einem Control Panel vornehmen, manuell akzeptieren. In JMeter akzeptiert das Control Panel Ihre Änderungen jedoch automatisch, sobald Sie sie vornehmen. Wenn Sie den Namen eines Elements ändern, wird der Baum mit dem neuen Text aktualisiert, nachdem Sie die Systemsteuerung verlassen (z. B. wenn Sie ein anderes Baumelement auswählen).

11.2 Hinzufügen von JMS-Abonnenten und -Herausgebern

Stellen Sie sicher, dass sich die erforderlichen JAR-Dateien im lib - Verzeichnis von JMeter befinden. Wenn dies nicht der Fall ist, fahren Sie JMeter herunter, kopieren Sie die JAR-Dateien und starten Sie JMeter neu.

Beginnen Sie mit dem Hinzufügen des JMS-Abonnenten des Samplers zum Subscribers-Element ( Hinzufügen  →  Sampler  →  JMS-Abonnent ). Wählen Sie dann das Element JMS-Abonnent in der Baumstruktur aus und bearbeiten Sie die folgenden Eigenschaften:

  1. Ändern Sie das Feld „Name“ in „ Musterabonnent “ .
  2. Wenn der JMS-Provider die Datei jndi.properties verwendet, aktivieren Sie das Kontrollkästchen
  3. Geben Sie den Namen der InitialContextFactory-Klasse ein. Bei ActiveMQ 5.4 lautet der Wert beispielsweise " org.apache.activemq.jndi.ActiveMQInitialContextFactory " .
  4. Geben Sie die Anbieter-URL ein. Dies ist die URL für den JNDI-Server, falls vorhanden. Bei ActiveMQ 5.4 auf einem lokalen Computer mit Standardport lautet der Wert beispielsweise " tcp://localhost:61616 " .
  5. Geben Sie den Namen der Verbindungsfactory ein. Die Informationen entnehmen Sie bitte der Dokumentation des JMS-Anbieters. Für ActiveMQ ist der Standard " ConnectionFactory " .
  6. Geben Sie den Namen des Nachrichtenthemas ein. Für dynamische ActiveMQ-Themen (Themen dynamisch erstellen) ist der Beispielwert " dynamicTopics/MyStaticTopic1 " .
    Hinweis: Setup beim Start bedeutet, dass JMeter zu Beginn des Tests ohne Namensänderungsmöglichkeit auf das Ziel hört. Setup on Each sample bedeutet, dass JMeter (erneut) beginnt zu lauschen, bevor jedes JMS-Abonnenten-Sample ausgeführt wird. Diese letzte Option ermöglicht es, den Zielnamen mit einigen JMeter-Variablen zu haben
  7. Wenn der JMS-Anbieter eine Authentifizierung erfordert, aktivieren Sie „ erforderlich “ und geben Sie den Benutzernamen und das Kennwort ein. Beispielsweise erfordert Orion JMS eine Authentifizierung, während ActiveMQ und MQSeries dies nicht tun
  8. Geben Sie 10 in „ Anzahl der zu aggregierenden Proben “ ein. Aus Leistungsgründen wird der Sampler Nachrichten aggregieren, da kleine Nachrichten sehr schnell ankommen. Wenn der Sampler die Nachrichten nicht aggregiert, könnte JMeter nicht mithalten.
  9. Wenn Sie die Antwort lesen möchten, aktivieren Sie das Kontrollkästchen
  10. Es gibt zwei Client-Implementierungen für Abonnenten. Wenn der JMS-Anbieter Zombie-Threads mit einem Client aufweist, versuchen Sie es mit dem anderen.


Abbildung 11.2.  JMS-Abonnent
Abbildung 11.2. JMS-Abonnent

Fügen Sie als Nächstes den Sampler JMS Publisher zum Publisher-Element hinzu ( Add  →  Sampler  →  JMS Publisher ). Wählen Sie dann das Element JMS Publisher in der Baumstruktur aus und bearbeiten Sie die folgenden Eigenschaften:

  1. Ändern Sie das Feld „Name“ in „ Musterherausgeber “.
  2. Wenn der JMS-Provider die Datei jndi.properties verwendet, aktivieren Sie das Kontrollkästchen
  3. Geben Sie den Namen der InitialContextFactory-Klasse ein. Bei ActiveMQ 5.4 lautet der Wert beispielsweise " org.apache.activemq.jndi.ActiveMQInitialContextFactory " .
  4. Geben Sie die Anbieter-URL ein. Dies ist die URL für den JNDI-Server, falls vorhanden. Bei ActiveMQ 5.4 auf einem lokalen Computer mit Standardport lautet der Wert beispielsweise " tcp://localhost:61616 " .
  5. Geben Sie den Namen der Verbindungsfactory ein. Die Informationen entnehmen Sie bitte der Dokumentation des JMS-Anbieters. Für ActiveMQ ist der Standard " ConnectionFactory " .
  6. Geben Sie den Namen des Nachrichtenthemas ein. Für ActiveMQ Dynamic Topics (Themen dynamisch erstellen) ist der Beispielwert " dynamicTopics/MyStaticTopic1 ".
    Hinweis: Setup beim Start bedeutet, dass JMeter die Verbindung mit dem Ziel zu Beginn des Tests ohne Namensänderungsmöglichkeit startet. Setup on Each sample bedeutet, dass JMeter die Verbindung (neu) startet, bevor jedes JMS Publisher-Beispiel ausgeführt wird. Diese letzte Option ermöglicht es, den Zielnamen mit einigen JMeter-Variablen zu haben
  7. Wenn der JMS-Anbieter eine Authentifizierung erfordert, aktivieren Sie „ erforderlich “ und geben Sie den Benutzernamen und das Kennwort ein. Beispielsweise erfordert Orion JMS eine Authentifizierung, während ActiveMQ und MQSeries dies nicht tun
  8. Geben Sie 10 in „ Anzahl der zu aggregierenden Proben “ ein. Aus Leistungsgründen wird der Sampler Nachrichten aggregieren, da kleine Nachrichten sehr schnell ankommen. Wenn der Sampler die Nachrichten nicht aggregiert, könnte JMeter nicht mithalten.
  9. Wählen Sie die entsprechende Konfiguration aus, um die Nachricht zu veröffentlichen. Wenn Sie möchten, dass der Sampler die Nachricht nach dem Zufallsprinzip auswählt, legen Sie die Nachrichten in einem Verzeichnis ab und wählen Sie das Verzeichnis mit Durchsuchen aus.
  10. Wählen Sie den Nachrichtentyp aus. Wenn die Nachricht im Objektformat oder als Map-Nachricht vorliegt, stellen Sie sicher, dass die Nachricht korrekt generiert wird.


Abbildung 11.3.  JMS-Verleger
Abbildung 11.3. JMS-Verleger

11.3 Hinzufügen eines Listeners zum Anzeigen und Speichern der Testergebnisse

Das letzte Element, das Sie Ihrem Testplan hinzufügen müssen, ist ein Listener . Dieses Element ist dafür verantwortlich, alle Ergebnisse Ihrer HTTP-Anforderungen in einer Datei zu speichern und ein visuelles Modell der Daten darzustellen.

Wählen Sie das Element Testplan aus und fügen Sie einen Listener für Diagrammergebnisse hinzu ( Hinzufügen  →  Listener  →  Diagrammergebnisse ). Als nächstes müssen Sie ein Verzeichnis und einen Dateinamen der Ausgabedatei angeben. Sie können ihn entweder in das Dateinamenfeld eingeben oder die Schaltfläche Durchsuchen auswählen und zu einem Verzeichnis navigieren und dann einen Dateinamen eingeben.


Abbildung 11.4.  Listener für Diagrammergebnisse
Abbildung 11.4. Listener für Diagrammergebnisse
Go to top