IBM MQ y JMeter: Primer contacto

¡Hola, Habr!

Esta es una precuela de mi publicación anterior y al mismo tiempo un remake del artículo Pruebas automatizadas de servicios que utilizan el protocolo MQ con JMeter.

Esta vez compartiré mi experiencia integrando JMeter e IBM MQ para probar aplicaciones en IBM WAS con éxito. Me enfrenté a esta tarea, y no fue fácil. Quiero ayudar a ahorrar tiempo a todos los interesados.

IBM MQ y JMeter: Primer contacto

Introducción

Sobre el proyecto: un bus de datos, múltiples mensajes xml, tres áreas de intercambio (colas, base de datos, sistema de archivos), servicios web con su propia lógica de procesamiento de mensajes. A medida que el proyecto avanzaba, se volvía cada vez más difícil realizar pruebas manualmente. Se convocó a Apache JMeter, potente y de código abierto, con una gran comunidad de usuarios y una interfaz amigable. La facilidad de personalización de la versión "fuera de la caja" permite cubrir cualquier caso, y la promesa del principal desarrollador de ayudar si es necesario (y efectivamente ayudó) consolidó definitivamente la elección.

Preparación del contexto inicial

Para interactuar con el gestor de colas, se necesita un contexto inicial. Hay varios tipos, aquí aquí se puede leer más a fondo.
Para crear uno, es conveniente usar MQ Explorer:

IBM MQ y JMeter: Primer contacto
Figura 1: Añadiendo el contexto inicial

Seleccionar el tipo de contexto de archivo y el directorio para el almacenamiento .bindings archivo que contendrá la descripción de los objetos JNDI:

IBM MQ y JMeter: Primer contacto
Figura 2: Selección del tipo de contexto inicial

Después de lo cual se puede proceder a la creación de estos objetos. Comenzar con la fábrica de conexiones:

IBM MQ y JMeter: Primer contacto
Figura 3: Creación de la fábrica de conexiones

Seleccionar un nombre claro…

IBM MQ y JMeter: Primer contacto
Figura 4: Selección del nombre de la fábrica de conexiones

… y tipo Queue Connection Factory:

IBM MQ y JMeter: Primer contacto
Figura 5: Selección del tipo de fábrica de conexiones

Protocolo — MQ Client para la posibilidad de interactuar con MQ de forma remota:

IBM MQ y JMeter: Primer contacto
Figura 6: Selección del protocolo de la fábrica de conexiones

En el siguiente paso, se puede seleccionar una fábrica existente y copiar los ajustes de la misma. Pulsar Siguiente, si no hay ninguna:

IBM MQ y JMeter: Primer contacto
Figura 7: Selección de los ajustes de la fábrica de conexiones existente

En la ventana de selección de parámetros, solo es necesario especificar tres. En la pestaña Connection indicar el nombre del gestor de colas y la ip del stand donde se encuentra (dejar el puerto): 1414 Figura 8: Configuración de los parámetros de la fábrica de conexiones

IBM MQ y JMeter: Primer contacto
Y en la pestaña

Channels — canal para la conexión. Pulsar para completar: Finalizar Figura 9: Finalización de la creación de la fábrica de conexiones

IBM MQ y JMeter: Primer contacto
Ahora crearemos una conexión a la cola:

Ahora vamos a crear una conexión a la cola:

IBM MQ y JMeter: Primer contacto
Figura 10: Creación del objeto objetivo

Elijamos un nombre claro (prefiero usar el nombre real de la cola) y tipo Cola:

IBM MQ y JMeter: Primer contacto
Figura 11: Selección del nombre y tipo del objeto objetivo

De manera similar a la Figura 7 , se pueden copiar los ajustes de una cola existente. También presionamos Siguiente, si es la primera:

IBM MQ y JMeter: Primer contacto
Figura 12: Selección de la configuración del objeto objetivo existente

En la ventana de ajustes, basta con elegir el nombre del gestor y la cola necesaria, presionar Finalizar. Después, repetir tantas veces como sea necesario hasta que todas las colas necesarias para la interacción con JMeter estén creadas:

IBM MQ y JMeter: Primer contacto
Figura 13: Finalización de la creación del objeto objetivo

Preparación de JMeter

La preparación de JMeter consiste en agregar las bibliotecas necesarias para la interacción con MQ. Se encuentran en %wmq_home%/java/lib. Copie estas 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 propuesta por polarnik en comentarios con un pequeño matiz: javax.jms-api-2.0.jar en lugar de jms.jar.
Con jms.jar ocurre el error NoClassDefFoundError, cuya solución fue encontrada por 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 y IBM MQ 8.0.0.4.

Configuración del plan de prueba

La colección necesaria y suficiente de elementos de JMeter es la siguiente:

IBM MQ y JMeter: Primer contacto
Figura 14: Plan de prueba

En el ejemplo del plan de prueba hay cinco variables. A pesar de su número reducido, recomiendo crear elementos de configuración separados para diferentes tipos de variables. A medida que se expanden las pruebas, esto simplificará considerablemente la navegación. En este caso, tenemos dos listas. La primera contiene los parámetros de conexión a MQ (ver Figura 2 y Figura 4):

IBM MQ y JMeter: Primer contacto
Figura 15: Parámetros de conexión a MQ

La segunda son los nombres de los objetos objetivo, que hacen referencia a las colas:

IBM MQ y JMeter: Primer contacto
Figura 16: Nombres de colas parametrizados

Ahora queda configurar el JMS Publisher para cargar el mensaje de prueba en la cola de salida:

IBM MQ y JMeter: Primer contacto
Figura 17: Configuración de JMS Publisher

Y el JMS Subscriber para leer el mensaje de la cola de entrada:

IBM MQ y JMeter: Primer contacto
Figura 18: Configuración de JMS Subscriber

Si todo se ha hecho correctamente, el resultado de la ejecución en el listener se llenará de colores verdes vibrantes y alegres.

Conclusión

He omitido intencionadamente las cuestiones de enrutamiento y administración, son temas bastante íntimos y extensos para publicaciones separadas.

Además, hay una sólida cantidad de matices en el trabajo con colas, bases de datos y archivos, sobre los cuales también me gustaría hablar por separado y a fondo.

Cuida tu tiempo. Y gracias por tu atención.

IBM MQ y JMeter: Primer contacto

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster