Hei Habr!
Acesta este un prequel al meu
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.
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
Pentru a-l crea, este convenabil să utilizați MQ Explorer:
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:
Figura 2: Selectarea tipului de context inițial
Apoi puteți începe să creați aceste obiecte. Și începeți cu fabrica de conexiuni:
Figura 3: Crearea unei fabrici de conexiuni
Alege un nume prietenos...
Figura 4: Selectarea unui nume de fabrică de conexiuni
... și tip Fabrica de conexiuni la coadă:
Figura 5: Selectarea tipului de fabrică de conexiuni
protocol - Client MQ pentru a putea interacționa cu MQ de la distanță:
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ă:
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):
Figura 8: Configurarea parametrilor fabricii de conexiune
Și pe filă Canale — canal pentru conectare. Clic finalizarea a termina:
Figura 9: Finalizarea creării fabricii de conexiuni
Acum să creăm o conexiune la coadă:
Figura 10: Crearea unui obiect țintă
Să alegem un nume prietenos (prefer să indice numele real al cozii) și să tastam Coadă:
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:
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:
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ă
Apare o eroare NoClassDEfFoundError cu jms.jar, soluția la care am găsit-o
- 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:
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):
Figura 15: Opțiuni de conectare MQ
Al doilea este numele obiectelor țintă care se referă la cozi:
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:
Figura 17: Configurarea JMS Publisher
Și abonatul JMS pentru a citi un mesaj din coada de așteptare:
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.
Sursa: www.habr.com