¡Hola, Habr!
Esta es una precuela de la mía.
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.
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í.
Para crearlo es conveniente utilizar MQ Explorer:
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:
Figura 2: Selección del tipo de contexto inicial
Entonces puedes comenzar a crear estos objetos. Y comencemos con la fábrica de conexiones:
Figura 3: Creación de una fábrica de conexiones
Elige un nombre descriptivo...
Figura 4: Selección de un nombre de fábrica de conexiones
... y escribe Fábrica de conexiones de cola:
Figura 5: Selección del tipo de fábrica de conexiones
Protocolo - Cliente MQ para poder interactuar con MQ de forma remota:
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:
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):
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:
Figura 9: Completar la creación de la fábrica de conexiones
Ahora creemos una conexión a la cola:
Figura 10: Creación de un objeto de destino
Elijamos un nombre descriptivo (prefiero indicar el nombre real de la cola) y escribamos Cola:
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:
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:
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
Se produce un error NoClassDEfFoundError con jms.jar, cuya solución encontré
- 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:
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):
Figura 15: Opciones de conexión MQ
El segundo son los nombres de los objetos de destino que hacen referencia a las colas:
Figura 16: Nombres de cola parametrizados
Todo lo que queda es configurar JMS Publisher para cargar el mensaje de prueba en la cola saliente:
Figura 17: Configuración de JMS Publisher
Y el suscriptor JMS para leer un mensaje de la cola entrante:
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.
Fuente: habr.com