IBM MQ en JMeter: Earste kontakt

Hoi Habr!

Dit is in prequel foar my foarige publikaasje en tagelyk in remake fan it artikel Automatisearre testen fan tsjinsten mei it MQ-protokol mei JMeter.

Dizze kear sil ik jo fertelle oer myn ûnderfining fan it fermoedsoenjen fan JMeter en IBM MQ foar lokkich testen fan applikaasjes op IBM WAS. Ik stie foar sa'n taak, it wie net maklik. Ik wol helpe om tiid te besparjen foar elkenien dy't ynteressearre is.

IBM MQ en JMeter: Earste kontakt

Ynlieding

Oer it projekt: databus, in protte xml-berjochten, trije útwikselingsgebieten (wachtrijen, database, bestânsysteem), webtsjinsten mei in eigen berjochtferwurkingslogika. As it projekt foarútgong, waard hânmjittich testen hieltyd dreger. Apache JMeter waard oproppen ta de rêding - krêftige en iepen boarne, mei in grutte mienskip fan brûkers en in freonlike ynterface. It gemak fan oanpassing fan 'e out-of-the-box ferzje lit jo alle gefallen dekke, en de belofte fan' e haadûntwikkelder om te helpen krekt yn gefal (it holp) úteinlik befêstige myn kar.

De earste kontekst tariede

Om ynteraksje mei de wachtrige manager, hawwe jo in earste kontekst nedich. D'r binne ferskate soarten, hjir hjir kinne jo lêze mear.
Om it te meitsjen, is it handich om MQ Explorer te brûken:

IBM MQ en JMeter: Earste kontakt
Ofbylding 1: In earste kontekst tafoegje

Selektearje it type kontekstbestân en opslachmap .bindings bestân dat in beskriuwing fan JNDI-objekten sil befetsje:

IBM MQ en JMeter: Earste kontakt
Ofbylding 2: Selektearje it earste konteksttype

Dan kinne jo begjinne mei it meitsjen fan dizze objekten. En begjin mei it ferbiningfabryk:

IBM MQ en JMeter: Earste kontakt
figuer 3: It meitsjen fan in ferbining fabryk

Kies in freonlike namme ...

IBM MQ en JMeter: Earste kontakt
figuer 4: Selektearje in ferbining fabryk namme

... en type Wachtrie Connection Factory:

IBM MQ en JMeter: Earste kontakt
Figuer 5: Selektearje de ferbining fabryk type

Protokol - MQ Client om op ôfstân mei MQ te kinnen:

IBM MQ en JMeter: Earste kontakt
figuer 6: Ferbining Factory Protocol Seleksje

Yn 'e folgjende stap kinne jo in besteande fabryk selektearje en fierdere ynstellingen derút kopiearje. Klikje Folgjende, as der gjin is:

IBM MQ en JMeter: Earste kontakt
figuer 7: Selektearje ynstellings foar in besteande ferbining fabryk

Yn it finster foar seleksje fan parameters is it genôch om trije op te jaan. Op de ljepper Ferbining jouwe de namme fan 'e wachtrigebehearder en de IP-stand mei syn lokaasje oan (port 1414 ferlitte):

IBM MQ en JMeter: Earste kontakt
figuer 8: Konfigurearje Connection Factory Parameters

En op 'e ljepper kanalen - kanaal foar ferbining. Klikje Ein ôfmeitsje:

IBM MQ en JMeter: Earste kontakt
figuer 9: Ferbining fabryk oanmeitsjen

Litte wy no in ferbining meitsje mei de wachtrige:

IBM MQ en JMeter: Earste kontakt
figuer 10: It meitsjen fan in doelobjekt

Litte wy in freonlike namme kieze (ik geef leaver de echte namme fan 'e wachtrige oan) en type wachtrige:

IBM MQ en JMeter: Earste kontakt
Ofbylding 11: Selektearje doelnamme en type

Troch analogy mei figuer 7 Jo kinne ynstellings kopiearje fan in besteande wachtrige. Klik ek Folgjende, as it de earste is:

IBM MQ en JMeter: Earste kontakt
figuer 12: Selektearje ynstellings foar in besteande doel

Selektearje yn it ynstellingsfinster de namme fan 'e behearder en de winske wachtrige, klikje Ein. Werhelje dan it fereaske oantal kearen oant alle wachtrijen dy't nedich binne foar ynteraksje mei JMeter binne oanmakke:

IBM MQ en JMeter: Earste kontakt
figuer 13: It meitsjen fan doelen foltôgje

JMeter tariede

It tarieden fan JMeter omfettet it tafoegjen fan de biblioteken dy't nedich binne om te ynteraksje mei MQ. Se lizze yn %wmq_home%/java/lib. Kopiearje se nei %jmeter_home%/lib/ext foardat JMeter start.

  • 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 list foarsteld polarnik в opmerkingen mei in lytse nuânse: javax.jms-api-2.0.jar ynstee fan jms.jar.
In flater NoClassDEfFoundError komt foar mei jms.jar, de oplossing dêr't ik fûn hjir.

  • com.ibm.mq.allclient.jar
  • fscontext.jar
  • javax.jms-api-2.0.jar
  • providerutil.jar

Beide listen fan bibleteken wurkje mei súkses mei JMeter 5.0 en IBM MQ 8.0.0.4.

It opstellen fan in testplan

De nedige en foldwaande set fan JMeter-eleminten sjocht der sa út:

IBM MQ en JMeter: Earste kontakt
figuer 14: Test plan

D'r binne fiif fariabelen yn it foarbyld testplan. Nettsjinsteande harren lytse oantal, ik riede it meitsjen fan aparte konfiguraasje eleminten foar ferskillende soarten fan fariabelen. As testen groeie, sil dit de navigaasje folle makliker meitsje. Yn dit gefal krije wy twa listen. De earste befettet parameters foar ferbining mei MQ (sjoch. Ofbylding 2 и Ofbylding 4):

IBM MQ en JMeter: Earste kontakt
figuer 15: MQ Connection opsjes

De twadde is de nammen fan 'e doelobjekten dy't ferwize nei de wachtrijen:

IBM MQ en JMeter: Earste kontakt
figuer 16: Parameterized wachtrige nammen

Alles wat oerbliuwt is om JMS Publisher te konfigurearjen om it testberjocht yn 'e útgeande wachtrige te laden:

IBM MQ en JMeter: Earste kontakt
figuer 17: JMS Publisher ynstelle

En JMS Subscriber om in berjocht te lêzen fan 'e ynkommende wachtrige:

IBM MQ en JMeter: Earste kontakt
figuer 18: Ynstelle JMS Subscriber

As alles goed dien wurdt, sil it resultaat fan útfiering yn 'e listner fol wêze mei ljochte en fleurige griene kleuren.

konklúzje

Ik haw de problemen fan routing en administraasje mei opsetsin weilitten; dit binne nochal yntime en wiidweidige ûnderwerpen foar aparte publikaasjes.

Dêrnjonken sit der in grut part oan nuânses yn it wurkjen mei wachtrijen, databases en bestannen, dêr't ik ek wol apart en yn detail oer prate wolle.

Besparje jo tiid. En tank foar jo oandacht.

IBM MQ en JMeter: Earste kontakt

Boarne: www.habr.com