IBM MQ und JMeter: Erster Kontakt

Hey Habr!

Das ist ein Prequel von mir vorherige Veröffentlichung und gleichzeitig ein Remake des Artikels Automatisiertes Testen von Diensten mithilfe des MQ-Protokolls mit JMeter.

Dieses Mal erzähle ich Ihnen von meinen Erfahrungen mit der Abstimmung von JMeter und IBM MQ für ein glückliches Testen von Anwendungen auf IBM WAS. Ich stand vor einer solchen Aufgabe, es war nicht einfach. Ich möchte allen Interessierten helfen, Zeit zu sparen.

IBM MQ und JMeter: Erster Kontakt

Einführung

Über das Projekt: Datenbus, viele XML-Nachrichten, drei Austauschbereiche (Warteschlangen, Datenbank, Dateisystem), Webdienste mit eigener Nachrichtenverarbeitungslogik. Mit fortschreitendem Projekt wurde das manuelle Testen immer schwieriger. Zur Rettung wurde Apache JMeter gerufen – leistungsstark und Open Source, mit einer großen Benutzergemeinschaft und einer benutzerfreundlichen Oberfläche. Die einfache Anpassung der sofort einsatzbereiten Version ermöglicht es Ihnen, alle Fälle abzudecken, und das Versprechen des Hauptentwicklers, Ihnen zu helfen wenn das (es hat geholfen) bestätigte schließlich meine Wahl.

Vorbereiten des Ausgangskontexts

Für die Interaktion mit dem Warteschlangenmanager benötigen Sie einen Anfangskontext. Hier gibt es mehrere Arten hier Sie können mehr lesen.
Um es zu erstellen, können Sie bequem den MQ Explorer verwenden:

IBM MQ und JMeter: Erster Kontakt
Abbildung 1: Hinzufügen eines Anfangskontexts

Wählen Sie den Kontextdateityp und das Speicherverzeichnis aus .Bindungen Datei, die eine Beschreibung von JNDI-Objekten enthält:

IBM MQ und JMeter: Erster Kontakt
Abbildung 2: Auswahl des anfänglichen Kontexttyps

Anschließend können Sie mit der Erstellung dieser Objekte beginnen. Und beginnen Sie mit der Verbindungsfabrik:

IBM MQ und JMeter: Erster Kontakt
Abbildung 3: Erstellen einer Verbindungsfabrik

Wählen Sie einen freundlichen Namen...

IBM MQ und JMeter: Erster Kontakt
Abbildung 4: Auswählen eines Verbindungsfabriknamens

... und tippen Warteschlangenverbindungsfabrik:

IBM MQ und JMeter: Erster Kontakt
Abbildung 5: Auswahl des Verbindungsfabriktyps

Protokoll - MQ-Client um aus der Ferne mit MQ interagieren zu können:

IBM MQ und JMeter: Erster Kontakt
Abbildung 6: Auswahl des Connection Factory-Protokolls

Im nächsten Schritt können Sie eine bestehende Fabrik auswählen und weitere Einstellungen daraus kopieren. Klicken Weiter, falls keine vorhanden ist:

IBM MQ und JMeter: Erster Kontakt
Abbildung 7: Auswählen von Einstellungen für eine vorhandene Verbindungsfabrik

Im Parameterauswahlfenster reicht es aus, drei anzugeben. Auf der Registerkarte Sichere Geben Sie den Namen des Warteschlangenmanagers und den IP-Standort mit seinem Standort (Port) an 1414 verlassen):

IBM MQ und JMeter: Erster Kontakt
Abbildung 8: Konfigurieren der Connection Factory-Parameter

Und auf der Registerkarte Kanäle — Kanal für die Verbindung. Klicken Endziel fertigstellen:

IBM MQ und JMeter: Erster Kontakt
Abbildung 9: Abschluss der Erstellung der Verbindungsfactory

Jetzt erstellen wir eine Verbindung zur Warteschlange:

IBM MQ und JMeter: Erster Kontakt
Abbildung 10: Erstellen eines Zielobjekts

Wählen wir einen benutzerfreundlichen Namen (ich gebe lieber den echten Namen der Warteschlange an) und geben ihn ein Warteschlange:

IBM MQ und JMeter: Erster Kontakt
Abbildung 11: Zielnamen und -typ auswählen

In Analogie zu Abbildung 7 Sie können Einstellungen aus einer vorhandenen Warteschlange kopieren. Klicken Sie auch Weiter, wenn es das erste ist:

IBM MQ und JMeter: Erster Kontakt
Abbildung 12: Auswählen von Einstellungen für ein vorhandenes Ziel

Wählen Sie im Einstellungsfenster einfach den Namen des Managers und die gewünschte Warteschlange aus und klicken Sie auf Endziel. Wiederholen Sie den Vorgang dann so oft, bis alle für die Interaktion mit JMeter erforderlichen Warteschlangen erstellt wurden:

IBM MQ und JMeter: Erster Kontakt
Abbildung 13: Abschluss der Zielerstellung

JMeter vorbereiten

Die Vorbereitung von JMeter umfasst das Hinzufügen der Bibliotheken, die für die Interaktion mit MQ erforderlich sind. Sie befinden sich in %wmq_home%/java/lib. Kopieren Sie sie nach %jmeter_home%/lib/ext, bevor Sie JMeter starten.

  • com.ibm.mq.commonservices.jar
  • com.ibm.mq.headers.jar
  • com.ibm.mq.jar
  • com.ibm.mq.jmqi.jar
  • com.ibm.mq.pcf.jar
  • com.ibm.mqjms.jar
  • dhbcore.jar
  • fscontext.jar
  • jms.jar
  • jta.jar
  • Providerutil.jar

Alternative Liste vorgeschlagen polarnik в Kommentare mit einer kleinen Nuance: javax.jms-api-2.0.jar statt jms.jar.
Bei jms.jar, der Lösung, für die ich gefunden habe, tritt ein Fehler NoClassDEfFoundError auf hier.

  • com.ibm.mq.allclient.jar
  • fscontext.jar
  • javax.jms-api-2.0.jar
  • Providerutil.jar

Beide Bibliothekslisten funktionieren erfolgreich mit JMeter 5.0 und IBM MQ 8.0.0.4.

Aufstellen eines Testplans

Der notwendige und ausreichende Satz an JMeter-Elementen sieht folgendermaßen aus:

IBM MQ und JMeter: Erster Kontakt
Abbildung 14: Testplan

Der Beispieltestplan enthält fünf Variablen. Trotz ihrer geringen Anzahl empfehle ich, für verschiedene Arten von Variablen separate Konfigurationselemente zu erstellen. Wenn die Tests zunehmen, wird dies die Navigation erheblich vereinfachen. In diesem Fall erhalten wir zwei Listen. Der erste enthält Parameter für die Verbindung mit MQ (siehe. Abbildung 2 и Abbildung 4):

IBM MQ und JMeter: Erster Kontakt
Abbildung 15: MQ-Verbindungsoptionen

Das zweite sind die Namen der Zielobjekte, die auf die Warteschlangen verweisen:

IBM MQ und JMeter: Erster Kontakt
Abbildung 16: Parametrisierte Warteschlangennamen

Es bleibt nur noch, JMS Publisher so zu konfigurieren, dass die Testnachricht in die Ausgangswarteschlange geladen wird:

IBM MQ und JMeter: Erster Kontakt
Abbildung 17: JMS Publisher einrichten

Und JMS-Abonnent liest eine Nachricht aus der Eingangswarteschlange:

IBM MQ und JMeter: Erster Kontakt
Abbildung 18: JMS-Abonnenten konfigurieren

Wenn alles richtig gemacht ist, wird das Ergebnis der Ausführung im Listener mit leuchtenden und fröhlichen grünen Farben gefüllt.

Abschluss

Auf die Themen Routing und Administration habe ich bewusst verzichtet, da es sich hierbei um eher intime und umfangreiche Themen für separate Veröffentlichungen handelt.

Darüber hinaus gibt es eine erhebliche Menge an Nuancen im Umgang mit Warteschlangen, Datenbanken und Dateien, auf die ich auch gesondert und ausführlich eingehen möchte.

Sparen Sie Zeit. Und vielen Dank für Ihre Aufmerksamkeit.

IBM MQ und JMeter: Erster Kontakt

Source: habr.com