IBM MQ och JMeter: Första kontakten

Hej, Habr!

Det hÀr Àr en prequel till min tidigare publicering och samtidigt en remake av artikeln Automatiserad testning av tjÀnster som anvÀnder MQ-protokollet med JMeter.

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.

IBM MQ och JMeter: Första kontakten

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 ). Ett typiskt exempel pÄ anvÀndning: mer information att lÀsa.
För att skapa den Àr det bekvÀmt att anvÀnda MQ Explorer:

IBM MQ och JMeter: Första kontakten
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:

IBM MQ och JMeter: Första kontakten
Bild 2: VĂ€lj typ av inledande kontext

DÀrefter kan man börja skapa dessa objekt. Börja med anslutningsfabriken:

IBM MQ och JMeter: Första kontakten
Bild 3: Skapa anslutningsfabrik

VĂ€lj ett förstĂ„eligt namn


IBM MQ och JMeter: Första kontakten
Bild 4: VÀlj namn för anslutningsfabriken


 och typ Queue Connection Factory:

IBM MQ och JMeter: Första kontakten
Bild 5: VĂ€lj typ av anslutningsfabrik

Protokoll — MQ Client för att kunna interagera med MQ pĂ„ distans:

IBM MQ och JMeter: Första kontakten
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:

IBM MQ och JMeter: Första kontakten
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):

IBM MQ och JMeter: Första kontakten
Bild 8: InstÀllning av parametrar för anslutningsfabriken

Och under fliken Channels — kanalen för anslutningen. Tryck Avsluta för att slutföra:

IBM MQ och JMeter: Första kontakten
Bild 9: Slutförande av skapandet av anslutningsfabriken

Nu skapar vi en anslutning till kön:

IBM MQ och JMeter: Första kontakten
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ö:

IBM MQ och JMeter: Första kontakten
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:

IBM MQ och JMeter: Första kontakten
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:

IBM MQ och JMeter: Första kontakten
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 polarnik pÄ kommentarer 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 ). Ett typiskt exempel pÄ anvÀndning:.

  • 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:

IBM MQ och JMeter: Första kontakten
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):

IBM MQ och JMeter: Första kontakten
Figur 15: Anslutningsparametrar till MQ

Den andra – namnen pĂ„ mĂ„lobjekten, som hĂ€nvisar till köerna:

IBM MQ och JMeter: Första kontakten
Figur 16: Parametriserade kö-namn

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

IBM MQ och JMeter: Första kontakten
Figur 17: Konfigurering av JMS Publisher

Och JMS Subscriber för att lÀsa meddelandet frÄn den inkommande kön:

IBM MQ och JMeter: Första kontakten
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.

IBM MQ och JMeter: Första kontakten

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster