Salut, Habr !
C'est un préquel de ma et en même temps un remake de l'article .
Cette fois, je vais parler de mon expérience d'intégration de JMeter et d'IBM MQ pour des tests réussis d'applications sur IBM WAS. J'ai été confronté à cette tâche, et elle ne s'est pas avérée facile. Je veux aider à faire gagner du temps à tous ceux qui s'y intéressent.

Introduction
À propos du projet : un bus de données, de nombreux messages XML, trois domaines d'échange (queues, base de données, système de fichiers), des services web avec leur propre logique de traitement des messages. Au fur et à mesure que le projet se développait, le test manuel devenait de plus en plus compliqué. Apache JMeter a été convoqué à la rescousse — puissant et open source, avec une grande communauté d'utilisateurs et une interface conviviale. La facilité de personnalisation de la version « prête à l'emploi » permet de couvrir tous les cas d'utilisation, et la promesse du développeur principal d'aider si besoin (et il a effectivement aidé) a définitivement validé mon choix.
Préparation du contexte initial
Pour interagir avec le gestionnaire de files d'attente, un contexte initial est nécessaire. Il existe plusieurs types, voici vous pouvez lire plus en détail.
Pour le créer, il est pratique d'utiliser MQ Explorer :

Figure 1 : Ajout du contexte initial
Sélectionner le type de fichier de contexte et le répertoire de stockage .bindings fichier qui contiendra la description des objets JNDI :

Figure 2 : Choix du type de contexte initial
Après cela, vous pouvez commencer à créer ces objets. Et commencer par la fabrique de connexions :

Figure 3 : Création de la fabrique de connexions
Choisissez un nom explicite…

Figure 4 : Choix du nom de la fabrique de connexions
… et le type Usine de connexions de file:

Figure 5 : Choix du type de fabrique de connexions
Protocole — MQ Client pour permettre l'interaction avec MQ à distance :

Figure 6 : Choix du protocole de la fabrique de connexions
À l'étape suivante, vous pouvez choisir une fabrique existante et copier les paramètres supplémentaires à partir de celle-ci. Cliquez sur Suivant, s'il n'y en a pas :

Figure 7 : Choix des paramètres de la fabrique de connexions existante
Dans la fenêtre de sélection des paramètres, il suffit de définir trois éléments. Dans l'onglet Connexion indiquez le nom du gestionnaire de files d'attente et l'IP du stand où il se trouve (la port 1414 laissez vide) :

Figure 8 : Configuration des paramètres de la fabrique de connexions
Et dans l'onglet Canaux — le canal pour la connexion. Cliquez sur Terminer pour terminer :

Figure 9 : Achèvement de la création de la fabrique de connexions
Créons maintenant une connexion à la file :

Figure 10: Création d'un objet cible
Choisissons un nom clair (je préfère indiquer le nom réel de la file d'attente) et un type Queue:

Figure 11: Choix du nom et du type de l'objet cible
À l'image de la Figure 7 on peut copier les paramètres d'une file d'attente existante. Cliquez également sur Suivant, si c'est la première :

Figure 12: Choix des paramètres existants de l'objet cible
Dans la fenêtre des paramètres, il suffit de choisir le nom du gestionnaire et la file d'attente souhaitée, puis de cliquer sur Terminer. Après cela, répétez le processus autant de fois que nécessaire jusqu'à ce que toutes les files d'attente requises pour l'interaction avec JMeter soient créées :

Figure 13: Finalisation de la création de l'objet cible
Préparation de JMeter
La préparation de JMeter consiste à ajouter les bibliothèques nécessaires pour interagir avec MQ. Elles se trouvent dans %wmq_home%/java/lib. Copiez-les dans %jmeter_home%/lib/ext avant de lancer 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
Liste alternative suggérée par dans avec un léger détail : javax.jms-api-2.0.jar à la place de jms.jar.
Jms.jar provoque une erreur NoClassDefFoundError, dont la solution a été trouvée .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Les deux listes de bibliothèques fonctionnent avec succès avec JMeter 5.0 et IBM MQ 8.0.0.4.
Configuration du plan de test
L'ensemble nécessaire et suffisant d'éléments JMeter est le suivant :

Figure 14: Plan de test
Dans cet exemple de plan de test, il y a cinq variables. Malgré leur nombre réduit, je recommande de créer des éléments de configuration distincts pour différents types de variables. Au fur et à mesure que les tests se développent, cela simplifiera considérablement la navigation. Dans ce cas, il y a deux listes. La première contient les paramètres de connexion à MQ (voir Figure 2 et Figure 4):

Figure 15: Paramètres de connexion à MQ
La seconde — les noms des objets cibles faisant référence aux files d'attente :

Figure 16: Noms de file d'attente paramétrés
Il reste à configurer le JMS Publisher pour charger le message de test dans la file sortante :

Figure 17: Configuration du JMS Publisher
Et le JMS Subscriber pour lire le message de la file entrante :

Figure 18: Configuration du JMS Subscriber
Si tout est fait correctement, le résultat de l'exécution dans le listener sera rempli de couleurs vertes vives et joyeuses.
Conclusion
J'ai intentionnellement omis les questions de routage et d'administration, ce sont des sujets assez intimes et vastes pour des publications séparées.
De plus, il existe une solide variété de nuances lors de la gestion des files d'attente, des bases de données et des fichiers, dont j'aimerais également parler séparément et en détail.
Préservez votre temps. Merci de votre attention.

Source : habr.com
