IBM MQ e JMeter: primeiro contacto

Ola Habr!

Esta é unha precuela da miña publicación anterior e ao mesmo tempo un remake do artigo Probas automatizadas de servizos mediante o protocolo MQ mediante JMeter.

Esta vez falareivos da miña experiencia na conciliación de JMeter e IBM MQ para probas felices de aplicacións en IBM WAS. Atopeime con tal tarefa, non foi doado. Quero axudar a aforrar tempo para todos os interesados.

IBM MQ e JMeter: primeiro contacto

Introdución

Sobre o proxecto: bus de datos, moitas mensaxes xml, tres áreas de intercambio (colas, base de datos, sistema de ficheiros), servizos web con lóxica de procesamento de mensaxes propia. A medida que o proxecto avanzaba, as probas manuais facíanse cada vez máis difíciles. Apache JMeter foi chamado ao rescate: poderoso e de código aberto, cunha gran comunidade de usuarios e unha interface amigable. A facilidade de personalización da versión lista permíteche cubrir calquera caso e a promesa do desenvolvedor principal de axudar por se acaso (axudou) finalmente confirmou a miña elección.

Preparación do contexto inicial

Para interactuar co xestor de colas, necesitas un contexto inicial. Hai varios tipos, aquí aquí podes ler máis.
Para crealo, é conveniente usar MQ Explorer:

IBM MQ e JMeter: primeiro contacto
Figura 1: Engadindo un contexto inicial

Seleccione o tipo de ficheiro de contexto e o directorio de almacenamento .encadernacións ficheiro que conterá unha descrición dos obxectos JNDI:

IBM MQ e JMeter: primeiro contacto
Figura 2: Selección do tipo de contexto inicial

Entón podes comezar a crear estes obxectos. E comeza coa fábrica de conexións:

IBM MQ e JMeter: primeiro contacto
Figura 3: Creación dunha fábrica de conexións

Escolle un nome amigable...

IBM MQ e JMeter: primeiro contacto
Figura 4: Selección dun nome de fábrica de conexións

... e tipo Fábrica de conexións de cola:

IBM MQ e JMeter: primeiro contacto
Figura 5: Selección do tipo de fábrica de conexión

Protocolo - Cliente MQ para poder interactuar con MQ de forma remota:

IBM MQ e JMeter: primeiro contacto
Figura 6: Selección do protocolo de fábrica de conexións

No seguinte paso, pode seleccionar unha fábrica existente e copiar máis axustes dela. Fai clic seguinte, se non hai ningunha:

IBM MQ e JMeter: primeiro contacto
Figura 7: Selección de configuracións para unha fábrica de conexións existente

Na xanela de selección de parámetros, abonda con especificar tres. Na pestana Conexión indicar o nome do xestor de colas e o soporte IP coa súa localización (port 1414 saír):

IBM MQ e JMeter: primeiro contacto
Figura 8: Configuración dos parámetros de fábrica de conexións

E na pestana Canles - canle de conexión. Fai clic Rematar completar:

IBM MQ e JMeter: primeiro contacto
Figura 9: Completando a creación da fábrica de conexións

Agora imos crear unha conexión coa cola:

IBM MQ e JMeter: primeiro contacto
Figura 10: Creación dun obxecto de destino

Escollemos un nome amigable (prefiro indicar o nome real da cola) e escriba cola:

IBM MQ e JMeter: primeiro contacto
Figura 11: Selección do nome e do tipo de destino

Por analoxía con Figura 7 Pode copiar a configuración dunha cola existente. Tamén fai clic seguinte, se é o primeiro:

IBM MQ e JMeter: primeiro contacto
Figura 12: Selección de configuracións para un destino existente

Na xanela de configuración, só tes que seleccionar o nome do xestor e a cola desexada, fai clic Rematar. A continuación, repita o número necesario de veces ata que se creen todas as colas necesarias para interactuar con JMeter:

IBM MQ e JMeter: primeiro contacto
Figura 13: Completando a creación do obxectivo

Preparando JMeter

A preparación de JMeter implica engadir as bibliotecas necesarias para interactuar con MQ. Están localizados en %wmq_home%/java/lib. Cópiaos en %jmeter_home%/lib/ext antes de 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

Lista alternativa suxerida polarnik в comentarios cun pequeno matiz: javax.jms-api-2.0.jar en lugar de jms.jar.
Prodúcese un erro NoClassDEfFoundError con jms.jar, a solución á que atopei aquí.

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

Ambas listas de bibliotecas funcionan correctamente con JMeter 5.0 e IBM MQ 8.0.0.4.

Establecemento dun plan de proba

O conxunto necesario e suficiente de elementos JMeter ten o seguinte aspecto:

IBM MQ e JMeter: primeiro contacto
Figura 14: Plan de proba

Hai cinco variables no plan de proba de exemplo. A pesar do seu pequeno número, recomendo crear elementos de configuración separados para diferentes tipos de variables. A medida que medran as probas, isto facilitará moito a navegación. Neste caso, obtemos dúas listas. O primeiro contén parámetros para conectarse a MQ (ver. Imaxe 2 и Imaxe 4):

IBM MQ e JMeter: primeiro contacto
Figura 15: Opcións de conexión MQ

O segundo son os nomes dos obxectos de destino que fan referencia ás filas:

IBM MQ e JMeter: primeiro contacto
Figura 16: Nomes de filas parametrizados

Todo o que queda é configurar JMS Publisher para cargar a mensaxe de proba na cola de saída:

IBM MQ e JMeter: primeiro contacto
Figura 17: Configuración de JMS Publisher

E o abonado JMS para ler unha mensaxe da cola de entrada:

IBM MQ e JMeter: primeiro contacto
Figura 18: Configuración do abonado JMS

Se todo se fai correctamente, o resultado da execución no listener estará cheo de cores verdes brillantes e alegres.

Conclusión

Omitín deliberadamente os temas de enrutamento e administración; estes son temas bastante íntimos e extensos para publicacións separadas.

Ademais, hai unha parte importante de matices no traballo con filas, bases de datos e ficheiros, dos que tamén me gustaría falar por separado e en detalle.

Aforra o teu tempo. E grazas pola túa atención.

IBM MQ e JMeter: primeiro contacto

Fonte: www.habr.com