IBM MQ y JMeter: primer contacto

¡Hola, Habr!

Esta es una precuela de la mía. publicacion anterior y al mismo tiempo una nueva versión del artículo. Pruebas automatizadas de servicios utilizando el protocolo MQ utilizando JMeter.

Esta vez les contaré mi experiencia al conciliar JMeter e IBM MQ para realizar pruebas exitosas de aplicaciones en IBM WAS. Me enfrenté a tal tarea, no fue fácil. Quiero ayudar a ahorrar tiempo a todos los interesados.

IBM MQ y JMeter: primer contacto

introducción

Sobre el proyecto: bus de datos, muchos 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 avanzaba el proyecto, las pruebas manuales se volvieron cada vez más difíciles. Apache JMeter fue llamado al rescate: 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 lista para usar le permite cubrir cualquier caso y la promesa del desarrollador principal de ayudar si algo (Ayudó) finalmente confirmó mi elección.

Preparando el contexto inicial

Para interactuar con el administrador de colas, necesita un contexto inicial. Hay varios tipos, aquí. aquí puedes leer más.
Para crearlo es conveniente utilizar MQ Explorer:

IBM MQ y JMeter: primer contacto
Figura 1: Agregar un contexto inicial

Seleccione el tipo de archivo de contexto y el directorio de almacenamiento .encuadernaciones archivo que contendrá una descripción de los objetos JNDI:

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

Entonces puedes comenzar a crear estos objetos. Y comencemos con la fábrica de conexiones:

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

Elige un nombre descriptivo...

IBM MQ y JMeter: primer contacto
Figura 4: Selección de un nombre de fábrica de conexiones

... y escribe Fábrica de conexiones de cola:

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

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

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

En el siguiente paso, puede seleccionar una fábrica existente y copiar más configuraciones de ella. Hacer clic Siguiente, si no hay ninguno:

IBM MQ y JMeter: primer contacto
Figura 7: Selección de configuraciones para una fábrica de conexiones existente

En la ventana de selección de parámetros, basta con especificar tres. en la pestaña Conexión indicar el nombre del gestor de colas y el stand IP con su ubicación (puerto 1414 dejar):

IBM MQ y JMeter: primer contacto
Figura 8: Configuración de los parámetros de fábrica de conexiones

y en la pestaña Canales — canal de conexión. Hacer clic Acabado completar:

IBM MQ y JMeter: primer contacto
Figura 9: Completar la creación de la fábrica de conexiones

Ahora creemos una conexión a la cola:

IBM MQ y JMeter: primer contacto
Figura 10: Creación de un objeto de destino

Elijamos un nombre descriptivo (prefiero indicar el nombre real de la cola) y escribamos Cola:

IBM MQ y JMeter: primer contacto
Figura 11: Selección del nombre y tipo de destino

Similar a Figura 7 Puede copiar la configuración de una cola existente. Haga clic también Siguiente, si es el primero:

IBM MQ y JMeter: primer contacto
Figura 12: Selección de configuraciones para un objetivo existente

En la ventana de configuración, simplemente seleccione el nombre del administrador y la cola deseada, haga clic en Acabado. Luego repita la cantidad requerida de veces hasta que se hayan creado todas las colas necesarias para interactuar con JMeter:

IBM MQ y JMeter: primer contacto
Figura 13: Completar la creación de objetivos

Preparando JMeter

La preparación de JMeter implica agregar las bibliotecas necesarias para interactuar con MQ. Están ubicados en %wmq_home%/java/lib. Cópielos 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
  • proveedorutil.jar

Lista alternativa sugerida polarnik в comentarios con un pequeño matiz: javax.jms-api-2.0.jar en lugar de jms.jar.
Se produce un error NoClassDEfFoundError con jms.jar, cuya solución encontré aquí.

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

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

Configurar un plan de prueba

El conjunto necesario y suficiente de elementos JMeter tiene este aspecto:

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

Hay cinco variables en el plan de prueba de ejemplo. A pesar de su pequeño número, recomiendo crear elementos de configuración separados para diferentes tipos de variables. A medida que crezcan las pruebas, esto hará que la navegación sea mucho más fácil. En este caso, obtenemos dos listas. El primero contiene parámetros para conectarse a MQ (ver. Figura 2 и Figura 4):

IBM MQ y JMeter: primer contacto
Figura 15: Opciones de conexión MQ

El segundo son los nombres de los objetos de destino que hacen referencia a las colas:

IBM MQ y JMeter: primer contacto
Figura 16: Nombres de cola parametrizados

Todo lo que queda es configurar JMS Publisher para cargar el mensaje de prueba en la cola saliente:

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

Y el suscriptor JMS para leer un mensaje de la cola entrante:

IBM MQ y JMeter: primer contacto
Figura 18: Configuración del suscriptor JMS

Si todo se hace correctamente, el resultado de la ejecución en el listner se llenará de colores verdes brillantes y alegres.

Conclusión

Omití deliberadamente las cuestiones de enrutamiento y administración; estos son temas bastante íntimos y extensos para publicaciones separadas.

Además, hay una gran cantidad de matices al trabajar con colas, bases de datos y archivos, de los que también me gustaría hablar por separado y en detalle.

Ahorra tiempo. Y gracias por su atención.

IBM MQ y JMeter: primer contacto

Fuente: habr.com