IBM MQ i JMeter: primer contacte

Hola Habr!

Aquesta és una preqüela de la meva publicació anterior i alhora un remake de l'article Proves automatitzades de serveis mitjançant el protocol MQ mitjançant JMeter.

Aquesta vegada us explicaré la meva experiència de conciliació de JMeter i IBM MQ per a proves feliços d'aplicacions a IBM WAS. Em vaig trobar davant d'una tasca així, no va ser fàcil. Vull ajudar a estalviar temps per a tots els interessats.

IBM MQ i JMeter: primer contacte

Introducció

Sobre el projecte: bus de dades, molts missatges xml, tres àrees d'intercanvi (cues, base de dades, sistema de fitxers), serveis web amb lògica de processament de missatges pròpia. A mesura que avançava el projecte, les proves manuals es feien cada cop més difícils. Apache JMeter va ser cridat al rescat: potent i de codi obert, amb una gran comunitat d'usuaris i una interfície amigable. La facilitat de personalització de la versió fora de la caixa us permet cobrir qualsevol cas i la promesa del desenvolupador principal d'ajudar-vos per si de cas (va ajudar) finalment va confirmar la meva elecció.

Preparació del context inicial

Per interactuar amb el gestor de cues, necessiteu un context inicial. N'hi ha de diversos tipus, aquí aquí pots llegir més.
Per crear-lo, és convenient utilitzar MQ Explorer:

IBM MQ i JMeter: primer contacte
Figura 1: Afegir un context inicial

Seleccioneu el tipus de fitxer de context i el directori d'emmagatzematge .enquadernacions fitxer que contindrà una descripció dels objectes JNDI:

IBM MQ i JMeter: primer contacte
Figura 2: Selecció del tipus de context inicial

A continuació, podeu començar a crear aquests objectes. I comenceu amb la fàbrica de connexions:

IBM MQ i JMeter: primer contacte
Figura 3: Creació d'una fàbrica de connexions

Tria un nom amigable...

IBM MQ i JMeter: primer contacte
Figura 4: Selecció d'un nom de fàbrica de connexions

... i escriviu Fàbrica de connexions a la cua:

IBM MQ i JMeter: primer contacte
Figura 5: Selecció del tipus de fàbrica de connexió

Protocol - Client MQ per poder interactuar amb MQ de forma remota:

IBM MQ i JMeter: primer contacte
Figura 6: Selecció del protocol de fàbrica de connexió

En el següent pas, podeu seleccionar una fàbrica existent i copiar-ne més configuracions. Feu clic Següent, si no n'hi ha cap:

IBM MQ i JMeter: primer contacte
Figura 7: selecció de la configuració per a una fàbrica de connexions existent

A la finestra de selecció de paràmetres n'hi ha prou amb especificar-ne tres. A la pestanya Connexió indiqueu el nom del gestor de cues i l'estand IP amb la seva ubicació (port 1414 marxar):

IBM MQ i JMeter: primer contacte
Figura 8: Configuració de la configuració de fàbrica de connexió

I a la pestanya canals - canal per a la connexió. Feu clic Finish completar:

IBM MQ i JMeter: primer contacte
Figura 9: Finalització de la creació de la fàbrica de connexions

Ara creem una connexió a la cua:

IBM MQ i JMeter: primer contacte
Figura 10: Creació d'un objecte objectiu

Triem un nom amigable (prefereixo indicar el nom real de la cua) i escrivim cua:

IBM MQ i JMeter: primer contacte
Figura 11: Selecció del nom i el tipus de destinació

Per analogia amb Figura 7 Podeu copiar la configuració d'una cua existent. També feu clic Següent, si és el primer:

IBM MQ i JMeter: primer contacte
Figura 12: Selecció de la configuració per a un objectiu existent

A la finestra de configuració, només cal que seleccioneu el nom del gestor i la cua desitjada, feu clic Finish. A continuació, repetiu el nombre de vegades necessari fins que s'hagin creat totes les cues necessàries per interactuar amb JMeter:

IBM MQ i JMeter: primer contacte
Figura 13: Finalització de la creació de l'objectiu

Preparant JMeter

La preparació de JMeter implica afegir les biblioteques necessàries per interactuar amb MQ. Es troben a %wmq_home%/java/lib. Copieu-los a %jmeter_home%/lib/ext abans d'iniciar 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

Llista alternativa suggerida polarnik в comentaris amb un petit matís: javax.jms-api-2.0.jar en lloc de jms.jar.
Es produeix un error NoClassDEfFoundError amb jms.jar, la solució a la qual he trobat aquí.

  • com.ibm.mq.allclient.jar
  • fscontext.jar
  • javax.jms-api-2.0.jar
  • providerutil.jar

Ambdues llistes de biblioteques funcionen correctament amb JMeter 5.0 i IBM MQ 8.0.0.4.

Establiment d'un pla de proves

El conjunt necessari i suficient d'elements JMeter té aquest aspecte:

IBM MQ i JMeter: primer contacte
Figura 14: Pla de proves

Hi ha cinc variables al pla de prova d'exemple. Malgrat el seu petit nombre, recomano crear elements de configuració separats per a diferents tipus de variables. A mesura que creixin les proves, això facilitarà molt la navegació. En aquest cas, obtenim dues llistes. El primer conté paràmetres per connectar-se a MQ (vegeu. Figura 2 и Figura 4):

IBM MQ i JMeter: primer contacte
Figura 15: Opcions de connexió MQ

El segon són els noms dels objectes de destinació que fan referència a les cues:

IBM MQ i JMeter: primer contacte
Figura 16: Noms de cues parametritzats

Tot el que queda és configurar JMS Publisher per carregar el missatge de prova a la cua de sortida:

IBM MQ i JMeter: primer contacte
Figura 17: Configuració de JMS Publisher

I el subscriptor JMS per llegir un missatge de la cua entrant:

IBM MQ i JMeter: primer contacte
Figura 18: Configuració del subscriptor JMS

Si tot es fa correctament, el resultat de l'execució al listener s'omplirà de colors verds brillants i alegres.

Conclusió

Vaig ometre deliberadament els problemes d'encaminament i administració; aquests són temes més aviat íntims i extensos per a publicacions separades.

A més, hi ha una part important de matisos en el treball amb cues, bases de dades i fitxers, dels quals també m'agradaria parlar per separat i amb detall.

Estalvieu el vostre temps. I gràcies per la vostra atenció.

IBM MQ i JMeter: primer contacte

Font: www.habr.com