IBM MQ y JMeter: primer contacto

Hola Habr!

Esta es una precuela de mi publicación anterior y, al mismo tiempo, una nueva versión del artículo Pruebas automatizadas de servicios mediante el protocolo MQ mediante JMeter .

Esta vez le contaré sobre mi experiencia en la reconciliación de JMeter e IBM MQ para una prueba feliz de las aplicaciones en IBM WAS. Ante tal tarea, fácilmente no se rindió. Quiero ayudar a ahorrar tiempo a todos los interesados.



Introduccion


Acerca del proyecto: bus de datos, muchos mensajes xml, tres áreas de intercambio (colas, bases de datos, sistema de archivos), servicios web con su propia lógica de procesamiento de mensajes. A medida que se desarrolló el proyecto, las pruebas manuales se hicieron más difíciles. Apache JMeter fue llamado para ayudar: 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 (sí ayudó) finalmente se aprueba en la elección.

Preparando el contexto inicial


Para interactuar con el gestor de colas, necesita un contexto inicial. Puede ser de varios tipos, aquí puede leer más.
Es conveniente usar MQ Explorer para crearlo:


Figura 1: Agregar un contexto inicial

Seleccione el tipo de archivo del contexto y el directorio para almacenar los enlaces del archivo que contendrá la descripción de los objetos JNDI:


Figura 2: Elección de un tipo de contexto inicial

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


Figura 3: Crear una fábrica de conexiones

Elige un nombre amigable ...


Figura 4: Elegir un nombre de fábrica de conexiones

... y el tipo de Fábrica de conexiones de cola :


Figura 5: Elección de un tipo de fábrica de conexiones

Protocolo - Cliente MQ para la posibilidad de interactuar con MQ de forma remota:


Figura 6: Elección de un protocolo de fábrica de conexiones

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


Figura 7: Selección de configuraciones para una fábrica de conexiones existente

En la ventana de selección de parámetros, solo configure tres. En la pestaña Conexión , especifique el nombre del gestor de colas y la ip del soporte con su ubicación (deje el puerto 1414 ):


Figura 8: Configuración de la configuración de fábrica de conexiones

Y en la pestaña Canales , el canal para la conexión. Haga clic en Finalizar para completar:


Figura 9: Completando la fábrica de conexiones

Ahora cree una conexión a la cola:


Figura 10: Crear un objetivo

Elija un nombre descriptivo (prefiero especificar el nombre real de la cola) y el tipo de cola :


Figura 11: Selección del nombre y tipo del objetivo

Por analogía con la Figura 7, puede copiar la configuración de una cola existente. También haga clic en Siguiente si es el primero:


Figura 12: Selección de la configuración de un objetivo existente

En la ventana de configuración, simplemente seleccione el nombre del administrador y la cola deseada, haga clic en Finalizar . Luego repita el número requerido de veces hasta que se creen todas las colas necesarias para interactuar con JMeter:


Figura 13: Finalizando la creación del objetivo

Preparando JMeter


La preparación de JMeter es agregar las bibliotecas necesarias para interactuar con MQ. Se encuentran 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


Una lista alternativa propuesta por polarnik en un comentario con un ligero matiz: javax.jms-api-2.0.jar en lugar de jms.jar.
Con jms.jar, se produce un error NoClassDEfFoundError, cuya solución se encuentra 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.

Configuración del plan de prueba


Un conjunto necesario y suficiente de elementos JMeter se ve así:


Figura 14: Plan de prueba

Hay cinco variables en el ejemplo del plan de prueba. A pesar de su pequeño número, recomiendo iniciar elementos de configuración separados para diferentes tipos de variables. A medida que crecen las pruebas, esto simplificará enormemente la navegación. En este caso, se obtienen dos listas. El primero contiene los parámetros para conectarse a MQ (ver Figura 2 y Figura 4 ):


Figura 15: Configuración de conexión MQ

El segundo son los nombres de los objetivos que hacen referencia a la cola:


Figura 16: Nombres de cola parametrizados

Queda por configurar JMS Publisher para cargar el mensaje de prueba en la cola saliente:


Figura 17: Configuración de JMS Publisher

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


Figura 18: Configuración del suscriptor JMS

Si todo se hace correctamente, el resultado en el listado estará lleno de colores verdes brillantes y alegres.

Conclusión


Deliberadamente omitió los problemas de enrutamiento y administración; estos son temas bastante íntimos y extensos para publicaciones individuales.

Además, hay una parte sustancial de los matices en el trabajo con colas, bases de datos y archivos, de los que también me gustaría hablar por separado y a fondo.

Cuida tu tiempo. Y gracias por mirar.

imagen

Source: https://habr.com/ru/post/437172/


All Articles