Hej, Habr!
Det hÀr Àr en prequel till min och samtidigt en remake av artikeln .
Den hÀr gÄngen delar jag med mig av mina erfarenheter av att förena JMeter och IBM MQ för lyckad testning av applikationer pÄ IBM WAS. Jag stÀlldes inför en sÄdan uppgift som inte var lÀtt att hantera. Jag vill hjÀlpa till att spara tid för alla intresserade.

Introduktion
Om projektet: databasbuss, ett antal xml-meddelanden, tre utbytesomrÄden (köer, databas, filsystem), webbtjÀnster med egen logik för meddelandehantering. Ju mer projektet utvecklades, desto svÄrare blev det att testa manuellt. Apache JMeter, en kraftfull och öppen kÀllkodsprogramvara med ett stort anvÀndarsamhÀlle och en vÀnlig grÀnssnitt, kallades till hjÀlp. Den enkla anpassningen av den förinstallerade versionen gör att man kan tÀcka alla fall, och löftet frÄn huvudutvecklaren om hjÀlp om nÄgot (hjÀlpte faktiskt) bekrÀftade mitt val slutgiltigt.
Förberedelse av den inledande kontexten
För att interagera med köhanteraren krÀvs en inledande kontext. Det finns flera typer, hÀr Àr mer information att lÀsa.
För att skapa den Àr det bekvÀmt att anvÀnda MQ Explorer:

Bild 1: LĂ€gg till inledande kontext
VÀlj filtyp för kontext och katalog för lagring .bindings filen som kommer att innehÄlla beskrivningen av JNDI-objekten:

Bild 2: VĂ€lj typ av inledande kontext
DÀrefter kan man börja skapa dessa objekt. Börja med anslutningsfabriken:

Bild 3: Skapa anslutningsfabrik
VĂ€lj ett förstĂ„eligt namnâŠ

Bild 4: VÀlj namn för anslutningsfabriken
⊠och typ Queue Connection Factory:

Bild 5: VĂ€lj typ av anslutningsfabrik
Protokoll â MQ Client för att kunna interagera med MQ pĂ„ distans:

Bild 6: VÀlj protokoll för anslutningsfabriken
I nÀsta steg kan man vÀlja en redan existerande fabrik och kopiera instÀllningar frÄn den. Tryck Next, om det inte finns nÄgon:

Bild 7: VÀlj instÀllningar för den befintliga anslutningsfabriken
I fönstret för parameterinstÀllningar Àr det tillrÀckligt att ange tre. Under fliken Connection ange namnet pÄ köhanteraren och IP-adressen till stÀllet dÀr den ligger (porten 1414 lÄter vara):

Bild 8: InstÀllning av parametrar för anslutningsfabriken
Och under fliken Channels â kanalen för anslutningen. Tryck Avsluta för att slutföra:

Bild 9: Slutförande av skapandet av anslutningsfabriken
Nu skapar vi en anslutning till kön:

Figur 10: Skapande av mÄlobjekt
Vi vÀljer ett begripligt namn (jag föredrar att ange det verkliga namnet pÄ kön) och typ Kö:

Figur 11: Val av namn och typ av mÄlobjekt
Som i Figur 7 kan vi kopiera instÀllningarna frÄn en existerande kö. Vi klickar ocksÄ pÄ Next, om det Àr den första:

Figur 12: Val av instÀllningar för existerande mÄlobjekt
I instÀllningsfönstret Àr det tillrÀckligt att vÀlja namn pÄ managern och den nödvÀndiga kön, och trycka pÄ Avsluta. Efter det upprepas det nödvÀndiga antalet gÄnger tills alla köer som behövs för interaktion med JMeter har skapats:

Figur 13: Slutförande av skapandet av mÄlobjekt
Förberedelse av JMeter
Förberedelsen av JMeter innebÀr att lÀgga till de bibliotek som behövs för att interagera med MQ. De finns i %wmq_home%/java/lib. Kopiera dem till %jmeter_home%/lib/ext innan du startar 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 lista, föreslagen av pÄ med en liten nyans: javax.jms-api-2.0.jar istÀllet för jms.jar.
Med jms.jar uppstÄr ett NoClassDefFoundError, vars lösning jag hittade .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
BÄda bibliotekslistorna fungerar framgÄngsrikt med JMeter 5.0 och IBM MQ 8.0.0.4.
Konfigurering av testplanen
Den nödvÀndiga och tillrÀckliga uppsÀttningen av JMeter-element ser ut sÄ hÀr:

Figur 14: Testplan
I exemplet pÄ testplanen finns det fem variabler. Trots det lilla antalet rekommenderar jag att skapa separata konfigurationselement för olika typer av variabler. Allteftersom testerna vÀxer kommer detta att förenkla navigeringen avsevÀrt. I det hÀr fallet blir det tvÄ listor. Den första innehÄller anslutningsparametrarna till MQ (se. Figur 2 och Figur 4):

Figur 15: Anslutningsparametrar till MQ
Den andra â namnen pĂ„ mĂ„lobjekten, som hĂ€nvisar till köerna:

Figur 16: Parametriserade kö-namn
Det ÄterstÄr att konfigurera JMS Publisher för att ladda det testmeddelande i den utgÄende kön:

Figur 17: Konfigurering av JMS Publisher
Och JMS Subscriber för att lÀsa meddelandet frÄn den inkommande kön:

Figur 18: Konfigurering av JMS Subscriber
Om allt gjorts korrekt kommer resultaten av körningen i lyssnaren att fyllas med livfulla och glada gröna fÀrger.
Slutsats
Jag har medvetet utelÀmnat frÄgor om routing och administration, eftersom det Àr ganska intima och omfattande Àmnen för separata publikationer.
Det finns ocksÄ en solid mÀngd nyanser i arbetet med köer, databaser och filer, som jag ocksÄ skulle vilja diskutera separat och ingÄende.
Spara din tid. Och tack för din uppmÀrksamhet.

KĂ€lla: habr.com
