Hé Habr !
C'est une préquelle du mien
Cette fois, je vais vous parler de mon expérience de réconciliation de JMeter et IBM MQ pour des tests heureux d'applications sur IBM WAS. J'étais confronté à une telle tâche, ce n'était pas facile. Je veux aider à gagner du temps pour toutes les personnes intéressées.
introduction
A propos du projet : bus de données, nombreux messages XML, trois zones d'échange (files d'attente, base de données, système de fichiers), web services avec leur propre logique de traitement des messages. À mesure que le projet avançait, les tests manuels devenaient de plus en plus difficiles. Apache JMeter a été appelé à la rescousse : puissant et open source, avec une large 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 d'aide du développeur principal si ça (ça a aidé) a finalement confirmé mon choix.
Préparer le contexte initial
Pour interagir avec le gestionnaire de files d'attente, vous avez besoin d'un contexte initial. Il en existe plusieurs types, ici
Pour le créer, il est pratique d'utiliser MQ Explorer :
Figure 1 : Ajout d'un contexte initial
Sélectionnez le type de fichier contextuel et le répertoire de stockage .reliures fichier qui contiendra une description des objets JNDI :
Figure 2 : Sélection du type de contexte initial
Ensuite, vous pouvez commencer à créer ces objets. Et commencez par la fabrique de connexions :
Figure 3 : Création d'une fabrique de connexions
Choisissez un nom convivial...
Figure 4 : Sélection d'un nom de fabrique de connexions
... et tapez Usine de connexion de file d'attente:
Figure 5 : Sélection du type de fabrique de connexions
Protocole - Client MQ pour pouvoir interagir avec MQ à distance :
Figure 6 : Sélection du 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 d'une fabrique de connexions existante
Dans la fenêtre de sélection des paramètres, il suffit d'en préciser trois. Sur l'onglet La connexion indiquer le nom du gestionnaire de files d'attente et le support IP avec son emplacement (port 1414 partir):
Figure 8 : Configuration des paramètres de fabrique de connexions
Et sur l'onglet Canaux — canal de connexion. Cliquez sur Finition compléter:
Figure 9 : achèvement de la création d'une fabrique de connexions
Créons maintenant une connexion à la file d'attente :
Figure 10 : Création d'un objet cible
Choisissons un nom convivial (je préfère indiquer le vrai nom de la file d'attente) et tapons Queue:
Figure 11 : Sélection du nom et du type de cible
Semblable à Figure 7 Vous pouvez copier les paramètres d'une file d'attente existante. Cliquez également Suivant, si c'est le premier :
Figure 12 : Sélection des paramètres pour une cible existante
Dans la fenêtre des paramètres, sélectionnez simplement le nom du gestionnaire et la file d'attente souhaitée, cliquez sur Finition. Répétez ensuite le nombre de fois requis jusqu'à ce que toutes les files d'attente nécessaires pour interagir avec JMeter aient été créées :
Figure 13 : Finalisation de la création de la cible
Préparation de JMeter
La préparation de JMeter implique l'ajout des 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
- fournisseurutil.jar
Liste alternative suggérée
Une erreur NoClassDEfFoundError se produit avec jms.jar, la solution à laquelle j'ai trouvé
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- fournisseurutil.jar
Les deux listes de bibliothèques fonctionnent correctement avec JMeter 5.0 et IBM MQ 8.0.0.4.
Mise en place d'un plan de tests
L'ensemble nécessaire et suffisant d'éléments JMeter ressemble à ceci :
Figure 14 : Plan de test
Il y a cinq variables dans l'exemple de plan de test. Malgré leur petit nombre, je recommande de créer des éléments de configuration distincts pour différents types de variables. À mesure que les tests se développeront, cela rendra la navigation beaucoup plus facile. Dans ce cas, nous obtenons deux listes. Le premier contient les paramètres de connexion à MQ (voir. Figure 2 и Figure 4):
Figure 15 : Options de connexion MQ
La seconde concerne les noms des objets cibles qui font référence aux files d'attente :
Figure 16 : Noms de files d'attente paramétrés
Il ne reste plus qu'à configurer JMS Publisher pour charger le message de test dans la file d'attente sortante :
Figure 17 : Configuration de JMS Publisher
Et l'Abonné JMS pour lire un message de la file d'attente entrante :
Figure 18 : Configuration de l'abonné JMS
Si tout est fait correctement, le résultat de l'exécution dans l'auditeur sera rempli de couleurs vertes vives et gaies.
Conclusion
J'ai délibérément omis les questions de routage et d'administration ; ce sont des sujets plutôt intimes et étendus pour des publications séparées.
De plus, le travail avec les files d'attente, les bases de données et les fichiers présente une part importante de nuances, dont j'aimerais également parler séparément et en détail.
Économisez votre temps. Et merci pour votre attention.
Source: habr.com