IBM MQ și JMeter: primul contact

Hei Habr!

Acesta este un prequel al meu publicația anterioară și în același timp un remake al articolului Testarea automată a serviciilor folosind protocolul MQ folosind JMeter.

De data aceasta, vă voi spune despre experiența mea de a reconcilia JMeter și IBM MQ pentru testarea fericită a aplicațiilor pe IBM WAS. M-am confruntat cu o astfel de sarcină, nu a fost ușor. Vreau să ajut să economisesc timp pentru toți cei interesați.

IBM MQ și JMeter: primul contact

Introducere

Despre proiect: magistrală de date, multe mesaje xml, trei zone de schimb (cozi, bază de date, sistem de fișiere), servicii web cu propria logică de procesare a mesajelor. Pe măsură ce proiectul progresa, testarea manuală a devenit din ce în ce mai dificilă. Apache JMeter a fost chemat la salvare - puternic și open source, cu o comunitate mare de utilizatori și o interfață prietenoasă. Ușurința de personalizare a versiunii out-of-the-box vă permite să acoperiți orice caz și promisiunea dezvoltatorului principal de a ajuta dacă ceva (a ajutat) mi-a confirmat în sfârșit alegerea.

Pregătirea contextului inițial

Pentru a interacționa cu managerul de cozi, aveți nevoie de un context inițial. Există mai multe tipuri, aici aici poti citi mai multe.
Pentru a-l crea, este convenabil să utilizați MQ Explorer:

IBM MQ și JMeter: primul contact
Figura 1: Adăugarea unui context inițial

Selectați tipul fișierului context și directorul de stocare .legaturi fișier care va conține o descriere a obiectelor JNDI:

IBM MQ și JMeter: primul contact
Figura 2: Selectarea tipului de context inițial

Apoi puteți începe să creați aceste obiecte. Și începeți cu fabrica de conexiuni:

IBM MQ și JMeter: primul contact
Figura 3: Crearea unei fabrici de conexiuni

Alege un nume prietenos...

IBM MQ și JMeter: primul contact
Figura 4: Selectarea unui nume de fabrică de conexiuni

... și tip Fabrica de conexiuni la coadă:

IBM MQ și JMeter: primul contact
Figura 5: Selectarea tipului de fabrică de conexiuni

protocol - Client MQ pentru a putea interacționa cu MQ de la distanță:

IBM MQ și JMeter: primul contact
Figura 6: Selectarea protocolului din fabrică de conexiune

În pasul următor, puteți selecta o fabrică existentă și puteți copia setări suplimentare din aceasta. Clic Pagina Următoare →, dacă nu există:

IBM MQ și JMeter: primul contact
Figura 7: Selectarea setărilor pentru o fabrică de conexiuni existentă

În fereastra de selecție a parametrilor, este suficient să specificați trei. Pe fila Conexiune indicați numele managerului de cozi și standul IP cu locația acestuia (port 1414 părăsi):

IBM MQ și JMeter: primul contact
Figura 8: Configurarea parametrilor fabricii de conexiune

Și pe filă Canale — canal pentru conectare. Clic finalizarea a termina:

IBM MQ și JMeter: primul contact
Figura 9: Finalizarea creării fabricii de conexiuni

Acum să creăm o conexiune la coadă:

IBM MQ și JMeter: primul contact
Figura 10: Crearea unui obiect țintă

Să alegem un nume prietenos (prefer să indice numele real al cozii) și să tastam Coadă:

IBM MQ și JMeter: primul contact
Figura 11: Selectarea numelui și tipului țintei

Prin analogie cu Figura 7 Puteți copia setările dintr-o coadă existentă. De asemenea, faceți clic Pagina Următoare →, dacă este primul:

IBM MQ și JMeter: primul contact
Figura 12: Selectarea setărilor pentru o țintă existentă

În fereastra de setări, doar selectați numele managerului și coada dorită, faceți clic finalizarea. Apoi repetați numărul necesar de ori până când au fost create toate cozile necesare pentru a interacționa cu JMeter:

IBM MQ și JMeter: primul contact
Figura 13: Finalizarea creării țintei

Pregătirea JMeter

Pregătirea JMeter implică adăugarea bibliotecilor necesare pentru a interacționa cu MQ. Sunt localizate în %wmq_home%/java/lib. Copiați-le în %jmeter_home%/lib/ext înainte de a porni 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

Lista alternativă sugerată polarnik в nici un comentariu cu o mică nuanță: javax.jms-api-2.0.jar în loc de jms.jar.
Apare o eroare NoClassDEfFoundError cu jms.jar, soluția la care am găsit-o aici.

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

Stabilirea unui plan de testare

Setul necesar și suficient de elemente JMeter arată astfel:

IBM MQ și JMeter: primul contact
Figura 14: Planul de testare

Există cinci variabile în exemplul de plan de testare. În ciuda numărului lor mic, recomand să creați elemente de configurare separate pentru diferite tipuri de variabile. Pe măsură ce testele cresc, acest lucru va face navigarea mult mai ușoară. În acest caz, obținem două liste. Primul conține parametri pentru conectarea la MQ (vezi. Figura 2 и Figura 4):

IBM MQ și JMeter: primul contact
Figura 15: Opțiuni de conectare MQ

Al doilea este numele obiectelor țintă care se referă la cozi:

IBM MQ și JMeter: primul contact
Figura 16: Nume de cozi parametrizate

Tot ce rămâne este să configurați JMS Publisher pentru a încărca mesajul de testare în coada de ieșire:

IBM MQ și JMeter: primul contact
Figura 17: Configurarea JMS Publisher

Și abonatul JMS pentru a citi un mesaj din coada de așteptare:

IBM MQ și JMeter: primul contact
Figura 18: Configurarea abonatului JMS

Dacă totul este făcut corect, rezultatul execuției în listener va fi umplut cu culori verzi strălucitoare și vesele.

Concluzie

Am omis în mod deliberat problemele de rutare și administrare; acestea sunt subiecte destul de intime și extinse pentru publicații separate.

În plus, există o porțiune semnificativă de nuanțe în lucrul cu cozi, baze de date și fișiere, despre care aș dori, de asemenea, să vorbesc separat și în detaliu.

Economisiți timp. Și mulțumesc pentru atenție.

IBM MQ și JMeter: primul contact

Sursa: www.habr.com