Bonjour, Habr!
Il s'agit d'une préquelle à ma
publication précédente et en même temps d'un remake de l'article
Test automatisé des services utilisant le protocole MQ à l'aide de JMeter .
Cette fois, je vais vous parler de mon expérience de la réconciliation de JMeter et d'IBM MQ pour des tests heureux d'applications sur IBM WAS. Face à une telle tâche, il n'a pas facilement cédé. Je veux aider à gagner du temps à tous ceux qui sont intéressés.

Présentation
A propos du projet: bus de données, nombreux messages xml, trois zones d'échange (files d'attente, bases de données, système de fichiers), services web avec leur propre logique de traitement des messages. Au fur et à mesure du développement du projet, les tests manuels sont devenus plus difficiles. Apache JMeter a été appelé pour aider - 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» vous permet de couvrir tous les cas, et la promesse du développeur principal d'aider
si quelque chose (a aidé) est finalement approuvée dans le choix.
Préparer le contexte initial
Pour interagir avec le gestionnaire de files d'attente, vous avez besoin d'un contexte initial. Il peut être de plusieurs types,
ici vous pouvez en savoir plus.
Il est pratique d'utiliser MQ Explorer pour le créer:
Figure 1: ajout d'un contexte initialSélectionnez le type de fichier du contexte et le répertoire de stockage des
.bindings du fichier qui contiendra la description des objets JNDI:
Figure 2: choix d'un type de contexte initialEnsuite, vous pouvez commencer à créer ces objets. Et commencez par une fabrique de connexions:
Figure 3: création d'une fabrique de connexionsChoisissez un nom convivial ...
Figure 4: choix d'un nom de fabrique de connexions... et le type
Queue Connection Factory :
Figure 5: Choix d'un type de fabrique de connexionsProtocole -
MQ Client pour la possibilité d'interagir avec MQ à distance:
Figure 6: Choix d'un protocole de fabrique de connexionsÀ l'étape suivante, vous pouvez sélectionner une usine existante et en copier d'autres paramètres. Cliquez sur
Suivant , s'il n'y en a pas:
Figure 7: Sélection des paramètres pour une fabrique de connexions existanteDans la fenêtre de sélection des paramètres, définissez simplement trois. Dans l'onglet
Connexion , spécifiez le nom du gestionnaire de files d'attente et l'adresse IP du support avec son emplacement (quittez le port
1414 ):
Figure 8: Configuration des paramètres d'usine de connexionEt sur l'onglet
Canaux , le canal pour la connexion. Cliquez sur
Terminer pour terminer:
Figure 9: Fin de la fabrique de connexionsCréez maintenant une connexion à la file d'attente:
Figure 10: création d'une cibleChoisissez un nom convivial (je préfère spécifier le vrai nom de la file d'attente) et le type de
file d'attente :
Figure 11: Sélection du nom et du type de la ciblePar analogie avec la
figure 7, vous pouvez copier les paramètres d'une file d'attente existante. Cliquez également sur
Suivant s'il s'agit du premier:
Figure 12: Sélection des paramètres d'une cible existanteDans la fenêtre des paramètres, sélectionnez simplement le nom du gestionnaire et la file d'attente souhaitée, cliquez sur
Terminer . Répétez ensuite le nombre de fois requis jusqu'à ce que toutes les files d'attente nécessaires pour interagir avec JMeter soient créées:
Figure 13: Fin de la création de la ciblePréparation de JMeter
La préparation de JMeter consiste à ajouter les bibliothèques nécessaires pour interagir avec MQ. Ils se trouvent dans% wmq_home% / java / lib. Copiez-les dans% jmeter_home% / lib / ext avant de démarrer 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
Une liste alternative proposée par
polarnik dans un
commentaire avec une légère nuance: javax.jms-api-2.0.jar au lieu de jms.jar.
Avec jms.jar, une erreur NoClassDEfFoundError se produit, dont la solution se trouve
ici .
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Les deux listes de bibliothèques fonctionnent correctement avec JMeter 5.0 et IBM MQ 8.0.0.4.
Configuration du plan de test
Un ensemble nécessaire et suffisant d'éléments JMeter ressemble à ceci:
Figure 14: Plan de testL'exemple de plan de test comporte cinq variables. Malgré leur petit nombre, je recommande de démarrer des éléments de configuration séparés pour différents types de variables. À mesure que les tests progressent, cela simplifiera considérablement la navigation. Dans ce cas, deux listes sont obtenues. Le premier contient les paramètres de connexion à MQ (voir
Figure 2 et
Figure 4 ):
Figure 15: Paramètres de connexion MQLe second est le nom des cibles référençant la file d'attente:
Figure 16: Noms de file d'attente paramétrésIl reste à configurer JMS Publisher pour charger le message de test dans la file d'attente sortante:
Figure 17: Configuration de JMS PublisherEt l'abonné JMS pour lire le message de la file d'attente entrante:
Figure 18: Configuration de l'abonné JMSSi tout est fait correctement, le résultat dans la liste sera rempli de couleurs vertes vives et gaies.
Conclusion
Il a délibérément omis les questions d'acheminement et d'administration, qui sont des sujets plutôt intimes et approfondis pour les publications individuelles.
De plus, il y a une bonne partie des nuances dans le travail avec les files d'attente, les bases de données et les fichiers, dont je voudrais également parler séparément et à fond.
Prenez soin de votre temps. Et merci d'avoir regardé.