Hey Habr!
Das ist ein Prequel von mir
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.
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
Um es zu erstellen, können Sie bequem den MQ Explorer verwenden:
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:
Abbildung 2: Auswahl des anfänglichen Kontexttyps
Anschließend können Sie mit der Erstellung dieser Objekte beginnen. Und beginnen Sie mit der Verbindungsfabrik:
Abbildung 3: Erstellen einer Verbindungsfabrik
Wählen Sie einen freundlichen Namen...
Abbildung 4: Auswählen eines Verbindungsfabriknamens
... und tippen Warteschlangenverbindungsfabrik:
Abbildung 5: Auswahl des Verbindungsfabriktyps
Protokoll - MQ-Client um aus der Ferne mit MQ interagieren zu können:
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:
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):
Abbildung 8: Konfigurieren der Connection Factory-Parameter
Und auf der Registerkarte Kanäle — Kanal für die Verbindung. Klicken Endziel fertigstellen:
Abbildung 9: Abschluss der Erstellung der Verbindungsfactory
Jetzt erstellen wir eine Verbindung zur Warteschlange:
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:
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:
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:
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
Bei jms.jar, der Lösung, für die ich gefunden habe, tritt ein Fehler NoClassDEfFoundError auf
- 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:
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):
Abbildung 15: MQ-Verbindungsoptionen
Das zweite sind die Namen der Zielobjekte, die auf die Warteschlangen verweisen:
Abbildung 16: Parametrisierte Warteschlangennamen
Es bleibt nur noch, JMS Publisher so zu konfigurieren, dass die Testnachricht in die Ausgangswarteschlange geladen wird:
Abbildung 17: JMS Publisher einrichten
Und JMS-Abonnent liest eine Nachricht aus der Eingangswarteschlange:
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.
Source: habr.com