IBM MQ und JMeter: Erster Kontakt

Hallo, Habra!

Das ist das Prequel meines vorherige Veröffentlichung und gleichzeitig ein Remake des Artikels Automatisiertes Testen von Diensten, die das MQ-Protokoll mit JMeter verwenden.

Dieses Mal möchte ich ĂŒber meine Erfahrungen mit der Integration von JMeter und IBM MQ berichten, um ein reibungsloses Testen von Anwendungen auf IBM WAS zu gewĂ€hrleisten. Ich bin mit dieser Aufgabe konfrontiert worden, und sie war nicht einfach zu bewĂ€ltigen. Ich möchte helfen, allen Interessierten Zeit zu sparen.

IBM MQ und JMeter: Erster Kontakt

EinfĂŒhrung

Über das Projekt: Datenbus, zahlreiche XML-Nachrichten, drei Austauschbereiche (Warteschlangen, Datenbank, Dateisystem), Webdienste mit eigener Logik zur Nachrichtenverarbeitung. Mit der Entwicklung des Projekts wurde das manuelle Testen zunehmend komplizierter. Apache JMeter wurde zu Hilfe gerufen – ein leistungsfĂ€higes und Open-Source-Tool mit einer großen Benutzergemeinschaft und benutzerfreundlicher OberflĂ€che. Die einfache Anpassbarkeit der 'Out-of-the-Box'-Version ermöglicht es, alle AnwendungsfĂ€lle abzudecken, und das Versprechen des Hauptentwicklers, zu helfen falls nötig (hat tatsĂ€chlich geholfen) hat mich in meiner Entscheidung bestĂ€rkt.

Erstellung des Anfangskontexts

FĂŒr die Interaktion mit dem Warteschlangenmanager wird ein Anfangskontext benötigt. Es gibt mehrere Typen, hier hier kann man mehr darĂŒber lesen.
Zur Erstellung ist es praktisch, MQ Explorer zu verwenden:

IBM MQ und JMeter: Erster Kontakt
Abbildung 1: HinzufĂŒgen des Anfangskontexts

WĂ€hlt den Dateityp des Kontexts und das Verzeichnis fĂŒr die Speicherung .bindings Datei, die die Beschreibung der JNDI-Objekte enthalten wird:

IBM MQ und JMeter: Erster Kontakt
Abbildung 2: Auswahl des Typs des Anfangskontexts

Danach kann man mit der Erstellung dieser Objekte beginnen. Beginnen Sie mit der Verbindungsfabrik:

IBM MQ und JMeter: Erster Kontakt
Abbildung 3: Erstellung der Verbindungsfabrik

WÀhlen Sie einen verstÀndlichen Namen...

IBM MQ und JMeter: Erster Kontakt
Abbildung 4: Auswahl des Namens der Verbindungsfabrik

... und den Typ Queue Connection Factory:

IBM MQ und JMeter: Erster Kontakt
Abbildung 5: Auswahl des Typs der Verbindungsfabrik

Protokoll — MQ Client um die Interaktion mit MQ aus der Ferne zu ermöglichen:

IBM MQ und JMeter: Erster Kontakt
Abbildung 6: Auswahl des Protokolls der Verbindungsfabrik

Im nÀchsten Schritt können Sie eine bereits vorhandene Fabrik auswÀhlen und die weiteren Einstellungen von ihr kopieren. Klicken Sie auf Weiter, falls keine vorhanden ist:

IBM MQ und JMeter: Erster Kontakt
Abbildung 7: Auswahl der Einstellungen der vorhandenen Verbindungsfabrik

Im Fenster zur Auswahl der Parameter mĂŒssen nur drei angegeben werden. Auf dem Tab Verbindung geben Sie den Namen des Warteschlangenmanagers und die IP-Adresse des Standorts an (Port 1414 belassen):

IBM MQ und JMeter: Erster Kontakt
Abbildung 8: Konfiguration der Parameter der Verbindungsfabrik

Und auf dem Tab Channels — Kanal fĂŒr die Verbindung. Klicken Sie auf Fertigstellen zum Abschluss:

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

Jetzt erstellen wir eine Verbindung zur Warteschlange:

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

WÀhlen wir einen verstÀndlichen Namen (ich bevorzuge es, den tatsÀchlichen Namen der Warteschlange anzugeben) und den Typ Warteschlange:

IBM MQ und JMeter: Erster Kontakt
Abbildung 11: Auswahl von Namen und Typ des Zielobjekts

Analog zu Abbildung 7 kann man die Einstellungen von einer bestehenden Warteschlange kopieren. DrĂŒcken Sie auch Weiter, wenn sie die erste ist:

IBM MQ und JMeter: Erster Kontakt
Abbildung 12: Auswahl der Einstellungen des bestehenden Zielobjekts

Im Einstellungsfenster reicht es aus, den Namen des Managers und die benötigte Warteschlange auszuwÀhlen und auf Fertigstellenzu klicken. Danach wiederholen Sie dies so oft, bis alle benötigten Warteschlangen zur Interaktion mit JMeter erstellt sind:

IBM MQ und JMeter: Erster Kontakt
Abbildung 13: Abschluss der Erstellung des Zielobjekts

JMeter Vorbereitung

Die Vorbereitung von JMeter besteht darin, die Bibliotheken hinzuzufĂŒgen, die fĂŒr die Interaktion mit MQ notwendig sind. Diese befinden sich im %wmq_home%/java/lib. Kopieren Sie diese in %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

Alternativliste, vorgeschlagen von polarnik in Kommentare mit einem kleinen Hinweis: javax.jms-api-2.0.jar statt jms.jar.
Mit jms.jar tritt der Fehler NoClassDEfFoundError auf, die Lösung dafĂŒr fand 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.

Testplan-Konfiguration

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

IBM MQ und JMeter: Erster Kontakt
Abbildung 14: Testplan

Im Beispiel des Testplans gibt es fĂŒnf Variablen. Trotz ihrer geringen Anzahl empfehle ich, separate Konfigurationselemente fĂŒr verschiedene Variablenarten zu erstellen. Dies erleichtert die Navigation erheblich, wenn die Tests wachsen. In diesem Fall ergeben sich zwei Listen. Die erste enthĂ€lt die Verbindungsparameter zu MQ (siehe Abbildung 2 und Abbildung 4):

IBM MQ und JMeter: Erster Kontakt
Abbildung 15: Verbindungsparameter zu MQ

Die zweite – die Namen der Zielobjekte, die auf die Warteschlangen verweisen:

IBM MQ und JMeter: Erster Kontakt
Abbildung 16: Parametrisierte Namen von Warteschlangen

Es bleibt, den JMS Publisher fĂŒr das Laden der Testnachricht in die ausgehende Warteschlange einzurichten:

IBM MQ und JMeter: Erster Kontakt
Abbildung 17: Einrichtung des JMS Publishers

Und JMS Subscriber, um die Nachricht aus der eingehenden Warteschlange zu lesen:

IBM MQ und JMeter: Erster Kontakt
Abbildung 18: Einrichtung des JMS Subscribers

Wenn alles richtig gemacht wurde, wird das Ergebnis der AusfĂŒhrung im Listener in leuchtenden und fröhlichen GrĂŒntönen gefĂŒllt sein.

Fazit

Ich habe absichtlich die Fragen zur Routing- und Verwaltungsproblematik ausgelassen, da dies recht intime und umfangreiche Themen fĂŒr separate Publikationen sind.

DarĂŒber hinaus gibt es eine betrĂ€chtliche Reihe von Nuancen bei der Arbeit mit Warteschlangen, Datenbanken und Dateien, ĂŒber die ich auch gerne separat und ausfĂŒhrlich sprechen wĂŒrde.

SchĂŒtzen Sie Ihre Zeit. Vielen Dank fĂŒr Ihre Aufmerksamkeit.

IBM MQ und JMeter: Erster Kontakt

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster