Tere, Habr!
See on minu ja samal ajal artikli uusversioon .
Seekord räägin oma kogemusest JMeteri ja IBM MQ ühendamisel, et võimaldada õnnelikku rakenduste testimist IBM WAS-is. Kohtasin sellist ülesannet, see ei olnud kerge. Soovin aidata kõikidel huvilistel aega säästa.

Sissejuhatus
Projektist: andmebus, hulk xml-sõnumeid, kolm vahetuse ala (järjekorrad, andmebaasid, failisüsteem), veebiteenused oma sõnumitöötluslogikaga. Projekti arenedes muutus testimine käsitsi üha keerulisemaks. Appi tuli Apache JMeter — võimas ja avatud lähtekoodiga tööriist, millega on suur kasutajate kogukond ja sõbralik liides. Kohandamise hõlpsus "karbist välja" võimaldab katta kõiki juhtumeid, ja pea-arendaja lubadus aidata kui on vaja (ja aitas) kinnitas valikut.
Algse konteksti loomine
Järjekorraga suhtlemiseks on vajalik algne kontekst. See võib olla mitut tüüpi, siin saab lugeda lähemalt.
Selle loomiseks on mugav kasutada MQ Explorerit:

Joonis 1: Algse konteksti lisamine
Valige konteksti failitüüp ja direktorium, kuhu salvestada .bindings fail, mis sisaldab JNDI-objektide kirjelduse:

Joonis 2: Algse konteksti tüübi valimine
Pärast seda saab alustada nende objektide loomist, alustades ühenduse tehase loomisega:

Joonis 3: Ühenduse tehase loomine
Valige arusaadav nimi…

Joonis 4: Ühenduse tehase nime valimine
… ja tüüp Queue Connection Factory:

Joonis 5: Ühenduse tehase tüübi valimine
Protokoll — MQ Client vastava MQ-ga kaugside võimaldamiseks:

Joonis 6: Ühenduse tehase protokolli valimine
Järgmises sammule saab valida juba olemasoleva tehase ja kopeerida edasised seaded sellelt. Vajuta Next, kui sellist ei ole:

Joonis 7: Olemasoleva ühenduse tehase seadete valimine
Parameetrite valimise aknas piisab kolme määramisest. Vahekaardil Ühendus tuleb märkida järjekorrahaldur ja IP, kus see asub (port 1414 jätta):

Joonis 8: Ühenduse tehase parameetrite seadistamine
Ja vahekaardil Channels — ühenduse kanal. Vajutage Lõpeta lõpetamiseks:

Joonis 9: Ühenduse tehase loomise lõpetamine
Nüüd loome ühenduse järjekorraga:

Joonis 10: Sihtobjekti loomine
Valime arusaadava nime (eelistan kasutada reaalseid järjekorra nimesid) ja tüübi Oote:

Joonis 11: Nime ja sihtobjekti tüübi valimine
Sarnaselt Joonisele 7 võime kopeerida seadistused olemasolevast järjekorrast. Samuti vajutame Next, kui see on esimene:

Joonis 12: Olemasoleva sihtobjekti seadete valimine
Seadete aknas piisab, kui valida haldurinimi ja vajalik järjekord ning vajutada Lõpeta. Pärast seda korrata vajalik arv kordi, kuni kõik järjekorrad, mis on vajalikud JMeteriga suhtlemiseks, on loodud:

Joonis 13: Sihtobjekti loomise lõpetamine
JMeteri ettevalmistamine
JMeteri ettevalmistamine seisneb raamatukogude lisamises, mis on vajalik MQ-ga suhtlemiseks. Need asuvad %wmq_home%/java/lib. Kopeerige need %jmeter_home%/lib/ext kausta enne JMeteri käivitamist.
- 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
Alternatiivne nimekiri, mille pakkus ja väikese nüansiga: javax.jms-api-2.0.jar jms.jari asemel.
jms.jari puhul tekib NoClassDefFoundError viga, mille lahenduse leidsin .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Mõlemad raamatukogude nimekirjad toimivad edukalt JMeter 5.0 ja IBM MQ 8.0.0.4-ga.
Testiplani seadistamine
Vajalik ja piisav seadelementide komplekt JMeteris näeb välja järgmiselt:

Joonis 14: Testiplan
Testiplani näites on viis muutujaid. Kuigi neid on vähe, soovitan luua erinevatele muutuja tüüpidele eraldi konfiguratsioonielemente. Testide suurenedes lihtsustab see oluliselt navigeerimist. Antud juhul tekib kaks nimekirja. Esimene sisaldab MQ ühendusparameetreid (vt. Joonis 2 ja Joonis 4):

Joonis 15: Ühendusparameetrid MQ-ga
Teine - sihtobjektide nimed, mis viitavad järjekordadele:

Joonis 16: Parameetrilised järjekordade nimed
Kohandage JMS Publisherit, et laadida testisõnum väljaminevasse järjekorda:

Joonis 17: JMS Publisheri seadistamine
Ja JMS Subscriberit, et lugeda sõnumit sisse tulevast järjekorrast:

Joonis 18: JMS Subscriberi seadistamine
Kui kõik on õigesti tehtud, täitub tulemuste vaatja erksate ja elavate roheliste värvidega.
Kokkuvõte
Jätsin kõrvale marsruutimis- ja haldamisküsimused, need on üsna intiimsed ja ulatuslikud teemad eraldi publikatsioonideks.
Lisaks on olemas palju nüansse järjekordade, andmebaaside ja failidega töötamisel, millest sooviksin samuti eraldi ja põhjalikult rääkida.
Hoidke oma aega. Tänan tähelepanu eest.

Allikas: habr.com
