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 inicialSeleccione 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 inicialEntonces puedes comenzar a crear estos objetos. Y comience con una fábrica de conexiones:
Figura 3: Crear una fábrica de conexionesElige 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 conexionesProtocolo -
Cliente MQ para la posibilidad de interactuar con MQ de forma remota:
Figura 6: Elección de un protocolo de fábrica de conexionesEn 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 existenteEn 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 conexionesY en la pestaña
Canales , el canal para la conexión. Haga clic en
Finalizar para completar:
Figura 9: Completando la fábrica de conexionesAhora cree una conexión a la cola:
Figura 10: Crear un objetivoElija 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 objetivoPor 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 existenteEn 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 objetivoPreparando 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 pruebaHay 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 MQEl segundo son los nombres de los objetivos que hacen referencia a la cola:
Figura 16: Nombres de cola parametrizadosQueda por configurar JMS Publisher para cargar el mensaje de prueba en la cola saliente:
Figura 17: Configuración de JMS PublisherY suscriptor JMS para leer el mensaje de la cola entrante:
Figura 18: Configuración del suscriptor JMSSi 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.