IBM MQ și JMeter: Prima întâlnire

Salut, Habr!

Acesta este prequelul publicației mele anterioare și în același timp un remake al articolului Testarea automată a serviciilor care folosesc protocolul MQ cu ajutorul JMeter.

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.

IBM MQ și JMeter: Prima întâlnire

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ă aici poate fi citit mai în detaliu.
Pentru a-l crea, este convenabil să folosiți MQ Explorer:

IBM MQ și JMeter: Prima întâlnire
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:

IBM MQ și JMeter: Prima întâlnire
Imaginea 2: Alegerea tipului de context inițial

După care se poate începe cu crearea acestora. Și să începem cu fabrica de conexiuni:

IBM MQ și JMeter: Prima întâlnire
Imaginea 3: Crearea fabricii de conexiuni

Alegeți un nume clar...

IBM MQ și JMeter: Prima întâlnire
Imaginea 4: Alegerea numelui fabricii de conexiuni

... și tipul Queue Connection Factory:

IBM MQ și JMeter: Prima întâlnire
Imaginea 5: Alegerea tipului de fabrică de conexiuni

Protocolul — MQ Client pentru a putea interacționa cu MQ de la distanță:

IBM MQ și JMeter: Prima întâlnire
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ă:

IBM MQ și JMeter: Prima întâlnire
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):

IBM MQ și JMeter: Prima întâlnire
Imaginea 8: Configurarea parametrilor fabricii de conexiuni

Și pe tab-ul Channels — canalul pentru conexiune. Faceți clic pe Finish pentru a finaliza:

IBM MQ și JMeter: Prima întâlnire
Imaginea 9: Finalizarea creării fabricii de conexiuni

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

IBM MQ și JMeter: Prima întâlnire
Figura 10: Crearea obiectului țintă

Să alegem un nume clar (prefer să specific numele real al cozii) și tipul Coadă:

IBM MQ și JMeter: Prima întâlnire
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:

IBM MQ și JMeter: Prima întâlnire
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:

IBM MQ și JMeter: Prima întâlnire
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 polarnik în comentarii 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 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.

Configurarea planului de testare

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

IBM MQ și JMeter: Prima întâlnire
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):

IBM MQ și JMeter: Prima întâlnire
Figura 15: Parametrii de conectare la MQ

A doua - numele obiectelor țintă care se referă la cozi:

IBM MQ și JMeter: Prima întâlnire
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ă:

IBM MQ și JMeter: Prima întâlnire
Figura 17: Configurarea JMS Publisher

Și JMS Subscriber pentru a citi mesajul din coada intră:

IBM MQ și JMeter: Prima întâlnire
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.

IBM MQ și JMeter: Prima întâlnire

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster