Hello, Habr!
Dette er en præquel til min og samtidig et remake af artiklen .
Denne gang vil jeg fortælle om min erfaring med at integrere JMeter og IBM MQ for at muliggøre effektiv test af applikationer på IBM WAS. Jeg har stået over for denne opgave, og det var ikke let. Jeg ønsker at hjælpe alle interesserede med at spare tid.

Introduktion
Om projektet: databus, mange xml-beskeder, tre udvekslingsområder (køer, databaser, filsystem), webtjenester med deres egen logik til behandling af beskeder. Efterhånden som projektet udviklede sig, blev manuel testning mere og mere udfordrende. Apache JMeter blev kaldt til hjælp – en kraftfuld og open source-løsning med et stort brugerfællesskab og et venligt interface. Letheden ved at tilpasse den ”out of the box”-version giver mulighed for at dække alle tilfælde, og det løfte, den ledende udvikler gav om hjælp hvis nødvendigt (og han hjalp virkelig) bekræftede mit valg fuldstændigt.
Forberedelse af det indledende kontekst
For at interagere med kømanageren er en indledende kontekst nødvendig. Der findes flere typer, og her er du kan læse mere om det.
For at oprette det er det praktisk at bruge MQ Explorer:

Figur 1: Tilføjelse af indledende kontekst
Vælg filtype for konteksten og katalog til opbevaring .bindings filen, der vil indeholde beskrivelsen af JNDI-objekterne:

Figur 2: Valg af type indledende kontekst
Derefter kan du begynde at oprette disse objekter. Begynd med forbindelsesfabrikken:

Figur 3: Oprettelse af forbindelsesfabrikken
Vælg et forståeligt navn…

Figur 4: Valg af navn til forbindelsesfabrikken
… og type Queue Connection Factory:

Figur 5: Valg af type forbindelsesfabrikken
Protokol – MQ Client for mulighed for at interagere med MQ eksternt:

Figur 6: Valg af protokol for forbindelsesfabrikken
I det næste trin kan du vælge en eksisterende fabrik og kopiere videre indstillinger fra den. Klik på Next, hvis der ikke er en sådan:

Figur 7: Valg af indstillinger for eksisterende forbindelsesfabrik
I vinduet til valg af parametre er det nok at angive tre. På fanen Connection angiv navnet på kømanageren og ip-adressen til den stående placering (porten 1414 forblive):

Figur 8: Indstilling af parametre for forbindelsesfabrikken
Og på fanen Channels – kanal til forbindelsen. Klik på Finish for at afslutte:

Figur 9: Afslutning på oprettelsen af forbindelsesfabrikken
Nu opretter vi forbindelse til køen:

Figur 10: Oprettelse af målopjekt
Lad os vælge et forståeligt navn (jeg foretrækker at angive det faktiske navn på køen) og type Kø:

Figur 11: Valg af navn og type for målopjektet
På samme måde som Figur 7 kan indstillinger kopieres fra en eksisterende kø. Tryk også på Next, hvis det er den første:

Figur 12: Valg af indstillinger for eksisterende målopjekt
I indstillingsvinduet skal du blot vælge managerens navn og den ønskede kø, og derefter trykke på Finish. Derefter gentages dette det nødvendige antal gange, indtil alle de køer, der er nødvendige for interaktionen med JMeter, er oprettet:

Figur 13: Afslutning af oprettelsen af målopjektet
Forberedelse af JMeter
Forberedelsen af JMeter indebærer tilføjelse af de biblioteker, der er nødvendige for at interagere med MQ. De findes i %wmq_home%/java/lib. Kopier dem til %jmeter_home%/lib/ext før du starter JMeter.
- 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
Alternativ liste foreslået i med en lille nuance: javax.jms-api-2.0.jar i stedet for jms.jar.
Der opstår en fejl NoClassDefFoundError med jms.jar, hvis løsning jeg fandt .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Begge biblioteks lister fungerer fint med JMeter 5.0 og IBM MQ 8.0.0.4.
Konfiguration af testplan
Det nødvendige og tilstrækkelige sæt af JMeter-elementer ser således ud:

Figur 14: Testplan
I eksemplet på testplanen er der fem variable. På trods af deres lille antal anbefaler jeg at oprette separate konfigurationselementer til forskellige typer variable. Efterhånden som testene vokser, vil det væsentligt forenkle navigationen. I dette tilfælde får vi to lister. Den første indeholder parametre til forbindelse til MQ (se. Billede 2 og Figur 4):

Figur 15: Parametre til forbindelse til MQ
Den anden - navne på målopjekter, der refererer til køerne:

Figur 16: Parametriserede navne på køer
Det er tilbage at konfigurere JMS Publisher til at indsende testbeskeder i den udgående kø:

Figur 17: Konfiguration af JMS Publisher
Og JMS Subscriber til at læse beskeder fra den indgående kø:

Figur 18: Konfiguration af JMS Subscriber
Hvis alt er gjort korrekt, vil resultatet fra eksekveringen i lytteren fyldes med lyse og livlige grønne farver.
Konklusion
Jeg har med vilje udeladt spørgsmål om routing og administration, da det er ret intime og omfattende emner, der kræver separate publikationer.
Derudover er der en solid mængde nuancer i arbejdet med køer, databaser og filer, som vi også gerne vil tale om separat og grundigt.
Pas på din tid. Og tak for din opmærksomhed.

Kilde: habr.com
