Tere, Habr!
See on mu ja samal ajal artikli uusversioon .
Seekord räägin oma kogemusest JMeteri ja IBM MQ ühendamisel, et võimaldada sujuvat rakenduste testimist IBM WAS-is. Tulin sellise probleemiga kokku, mis ei olnud kerge. Soovin aidata kõiki, kes on huvitatud, aega kokku hoida.

Sissejuhatus
Projektist: andmesüsteem, palju xml-sõnumeid, kolm vahetusalad (järjekorrad, andmebaasid, failisüsteem), veebiteenused koos oma sõnumite töötlemise loogikaga. Projekti arenedes muutus käsitsi testimine üha keerulisemaks. Abiks tuli Apache JMeter - võimas ja avatud lähtekoodiga tööriist, millel on suur kasutajaskond ja sõbralik liides. „Karbi“ lahenduse kohandamise lihtsus võimaldab katta kõik juhtumid ning peamise arendaja lubadus aidata vajadusel (aitas tõesti) kinnitas valikut.
Algse konteksti ettevalmistamine
Järjekorramanageriga suhtlemiseks on vajalik algne kontekst. See võib olla erinevat tüüpi, siin on saate lugeda rohkem.
Selle loomiseks on mugav kasutada MQ Explorerit:

Joonis 1: Algse konteksti lisamine
Valige konteksti faili tüüp ja kaust salvestamiseks .bindings fail, mis sisaldab JNDI-objektide kirjeldust:

Joonis 2: Algse konteksti tüübi valimine
Seejärel saab alustada nende objektide loomist. Alustame ühenduste tehasega:

Joonis 3: Ühenduste tehase loomine
Valige arusaadav nimi…

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

Joonis 5: Ühenduste tehase tüübi valimine
Protokoll — MQ Client MQ-ga kaugjuhtimise võimaldamiseks:

Joonis 6: Ühenduste tehase protokolli valimine
Järgmises etapis saab valida juba olemasoleva tehase ja edasised seaded sellelt kopeerida. Klõpsake Järgmine, kui sellist ei ole:

Joonis 7: Olemasoleva ühenduste tehase seadete valimine
Parameetrite valimise aknas on piisav määrata kolm. Vahekaardil Ühendus määrake järjekordade halduri nimi ja seista IP tema asukohaga (port 1414 jätta):

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

Joonis 9: Ühenduste tehase loomise lõpetamine
Loome nüüd ühendus järjekorraga:

Joonis 10: Sihtobjekti loomine
Valime arusaadava nime (eelistan kasutada järjekorra tõelist nime) ja tüübi Queue:

Joonis 11: Sihtobjekti nime ja tüübi valimine
Nagu Joonisel 7 , on võimalik kopeerida seadeid olemasolevast järjekorrast. Samuti vajutame Järgmine, kui see on esimene:

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

Joonis 13: Sihtobjekti loomise lõpetamine
JMeteri ettevalmistamine
JMeteri ettevalmistamine seisneb MQ-ga suhtlemiseks vajalike teekide lisamises. Need asuvad %wmq_home%/java/lib. Kopeerige need %jmeter_home%/lib/ext 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 on esitanud ühes kerge nüansiga: javax.jms-api-2.0.jar jms.jar asemel.
jms.jar-i korral tekib viga NoClassDEfFoundError, mille lahenduse leidis .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Mõlemad raamatukogude loendid töötavad edukalt JMeter 5.0 ja IBM MQ 8.0.0.4-ga.
Testiplaani seadistus
Nõutav ja piisav JMeter-i elementide kogum näeb välja selline:

Joonis 14: Testiplaan
Testiplaanis on viis muutujaid. Vaatamata nende vähesele arvule, soovitan luua erinevatele muutujate tüüpidele eraldi konfigureerimise elemendid. Testide suurenedes lihtsustab see oluliselt navigeerimist. Antud juhul on tegemist kahe loendiga. Esimene sisaldab MQ-ühenduse parameetreid (vt. Joonis 2 ja Joonis 4):

Joonis 15: MQ ühenduse parameetrid
Teine - sihtobjektide nimed, mis viitavad järjekordadele:

Joonis 16: Parameetriseeritud järjekordade nimed
On vaja seadistada JMS Publisher, et laadida testmesssage väljasaatmise järjekorda:

Joonis 17: JMS Publisher seadistus
Ja JMS Subscriber sõnumi lugemiseks sisenemise järjekorrast:

Joonis 18: JMS Subscriber seadistus
Kui kõik on õigesti tehtud, täitub tulemuse kuulaja erksate ja rõõmsate roheliste värvidega.
Kokkuvõte
Jätsin teadlikult välja marsruutimise ja haldamise küsimused, need on üsna intiimsed ja ulatuslikud teemad eraldi väljaannete jaoks.
Lisaks on olemas suur hulk nüansse järjekordade, andmebaaside ja failidega töötamisel, millest tahaksin ka eraldi ja põhjalikult rääkida.
Hoidke oma aega. Ja aitäh tähelepanu eest.

Allikas: habr.com
