¡Hola, Habr!
Esta es una precuela de mi y al mismo tiempo un remake del artículo .
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.

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í se puede leer más a fondo.
Para crear uno, es conveniente usar MQ Explorer:

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:

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:

Figura 3: Creación de la fábrica de conexiones
Seleccionar un nombre claro…

Figura 4: Selección del nombre de la fábrica de conexiones
… y tipo Queue Connection Factory:

Figura 5: Selección del tipo de fábrica de conexiones
Protocolo — MQ Client para la posibilidad de interactuar con MQ de forma remota:

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:

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

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

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

Figura 10: Creación del objeto objetivo
Elijamos un nombre claro (prefiero usar el nombre real de la cola) y tipo Cola:

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:

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:

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 en 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 .
- 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:

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):

Figura 15: Parámetros de conexión a MQ
La segunda son los nombres de los objetos objetivo, que hacen referencia a las colas:

Figura 16: Nombres de colas parametrizados
Ahora queda configurar el JMS Publisher para cargar el mensaje de prueba en la cola de salida:

Figura 17: Configuración de JMS Publisher
Y el JMS Subscriber para leer el mensaje de la cola de entrada:

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.

Fuente: habr.com
