Salut, Habr!
Acesta este prequelul publicației mele și în același timp un remake al articolului .
De data aceasta voi povesti despre experiența mea de integrare a JMeter cu IBM MQ pentru a testa aplicații pe IBM WAS. M-am confruntat cu această sarcină, iar ea nu a fost ușor de abordat. Vreau să ajut să economisiți timp tuturor celor interesați.

Introducere
Despre proiect: un bus de date, numeroase mesaje XML, trei domenii de schimb (cozi, baze de date, sistem de fișiere), servicii web cu propria logică de procesare a mesajelor. Pe măsură ce proiectul a evoluat, testarea manuală a devenit din ce în ce mai complicată. Apache JMeter a fost chemat în ajutor — puternic, open-source, cu o comunitate mare de utilizatori și o interfață prietenoasă. Ușurința de personalizare a versiunii „din cutie” permite acoperirea oricăror cazuri, iar promisiunea dezvoltatorului principal de a ajuta dacă este cazul (chiar a ajutat) m-a convins definitiv în alegerea aceasta.
Crearea contextului inițial
Pentru interacțiunea cu managerul de cozi este nevoie de un context inițial. Acesta poate fi de mai multe tipuri, iată poate fi citit mai în detaliu.
Pentru a-l crea, este convenabil să folosiți MQ Explorer:

Imaginea 1: Adăugarea contextului inițial
Alegeți tipul de fișier pentru context și directorul pentru stocare .bindings fișierul care va conține descrierea obiectelor JNDI:

Imaginea 2: Alegerea tipului de context inițial
După care se poate începe cu crearea acestora. Și să începem cu fabrica de conexiuni:

Imaginea 3: Crearea fabricii de conexiuni
Alegeți un nume clar...

Imaginea 4: Alegerea numelui fabricii de conexiuni
... și tipul Queue Connection Factory:

Imaginea 5: Alegerea tipului de fabrică de conexiuni
Protocolul — MQ Client pentru a putea interacționa cu MQ de la distanță:

Imaginea 6: Alegerea protocolului pentru fabrica de conexiuni
În pasul următor, se poate alege o fabrică existentă și a copia ulterior setările de la aceasta. Apăsați Next, dacă nu există:

Imaginea 7: Alegerea setărilor fabricii de conexiuni existente
În fereastra de alegere a parametrilor este suficient să specificați trei. Pe tab-ul Connection indicați numele managerului de cozi și IP-ul serverului unde este situat acesta (portul 1414 lăsați neschimbat):

Imaginea 8: Configurarea parametrilor fabricii de conexiuni
Și pe tab-ul Channels — canalul pentru conexiune. Faceți clic pe Finish pentru a finaliza:

Imaginea 9: Finalizarea creării fabricii de conexiuni
Acum să creăm o conexiune la coadă:

Figura 10: Crearea obiectului țintă
Să alegem un nume clar (prefer să specific numele real al cozii) și tipul Coadă:

Figura 11: Alegerea numelui și tipului obiectului țintă
Similar cu Figura 7 putem să copiem setările de la o coadă existentă. De asemenea, facem clic pe Next, dacă este prima:

Figura 12: Alegerea setărilor obiectului țintă existent
În fereastra de setări, este suficient să alegi numele managerului și coada dorită, apoi să apeși Finish. După care, repetă de atâtea ori cât este necesar, până când toate cozile necesare pentru interacțiunea cu JMeter sunt create:

Figura 13: Finalizarea creării obiectului țintă
Pregătirea JMeter
Pregătirea JMeter constă în adăugarea bibliotecilor necesare pentru interacțiunea cu MQ. Acestea se află în %wmq_home%/java/lib. Copiază-le în %jmeter_home%/lib/ext înainte de a rula 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
O listă alternativă, propusă de în cu o mică nuanță: javax.jms-api-2.0.jar în loc de jms.jar.
Cu jms.jar apare o eroare NoClassDEfFoundError, soluția acesteia fiind găsită de .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Ambele liste de biblioteci funcționează cu succes cu JMeter 5.0 și IBM MQ 8.0.0.4.
Configurarea planului de testare
Setul necesar și suficient de elemente JMeter arată astfel:

Figura 14: Planul de testare
În exemplul planului de testare există cinci variabile. Cu toate că numărul lor este mic, recomand să creezi elemente de configurare separate pentru diferite tipuri de variabile. Pe măsură ce testele se extind, aceasta va simplifica semnificativ navigarea. În acest caz, obținem două liste. Prima conține parametrii de conectare la MQ (vezi Figura 2 și Figura 4):

Figura 15: Parametrii de conectare la MQ
A doua - numele obiectelor țintă care se referă la cozi:

Figura 16: Numele parametrizate ale cozilor
Rămâne să configurăm JMS Publisher pentru a încărca un mesaj de test în coada sortantă:

Figura 17: Configurarea JMS Publisher
Și JMS Subscriber pentru a citi mesajul din coada intră:

Figura 18: Configurarea JMS Subscriber
Dacă totul a fost realizat corect, rezultatul execuției în listener se va umple cu culori verzi strălucitoare și vesele.
Concluzie
Am evitat intenționat întrebările despre rutare și administrare, acestea fiind teme destul de intime și ample pentru publicații separate.
În plus, există o serie de nuanțe importante în lucru cu cozi, baze de date și fișiere, despre care ar fi bine să discutăm separat și detaliat.
Economisiți-vă timpul. Și mulțumim pentru atenție.

Sursa: habr.com
