IBM MQ et JMeter : premier contact

Hé Habr !

C'est une préquelle du mien publication précédente et en même temps 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 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.

IBM MQ et JMeter : premier contact

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 ici vous pouvez en lire davantage.
Pour le créer, il est pratique d'utiliser MQ Explorer :

IBM MQ et JMeter : premier contact
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 :

IBM MQ et JMeter : premier contact
Figure 2 : Sélection du type de contexte initial

Ensuite, vous pouvez commencer à créer ces objets. Et commencez par la fabrique de connexions :

IBM MQ et JMeter : premier contact
Figure 3 : Création d'une fabrique de connexions

Choisissez un nom convivial...

IBM MQ et JMeter : premier contact
Figure 4 : Sélection d'un nom de fabrique de connexions

... et tapez Usine de connexion de file d'attente:

IBM MQ et JMeter : premier contact
Figure 5 : Sélection du type de fabrique de connexions

Protocole - Client MQ pour pouvoir interagir avec MQ à distance :

IBM MQ et JMeter : premier contact
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 :

IBM MQ et JMeter : premier contact
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):

IBM MQ et JMeter : premier contact
Figure 8 : Configuration des paramètres de fabrique de connexions

Et sur l'onglet Canaux — canal de connexion. Cliquez sur Finition compléter:

IBM MQ et JMeter : premier contact
Figure 9 : achèvement de la création d'une fabrique de connexions

Créons maintenant une connexion à la file d'attente :

IBM MQ et JMeter : premier contact
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:

IBM MQ et JMeter : premier contact
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 :

IBM MQ et JMeter : premier contact
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 :

IBM MQ et JMeter : premier contact
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 polarnik в commentaires avec une petite nuance : javax.jms-api-2.0.jar au lieu de jms.jar.
Une erreur NoClassDEfFoundError se produit avec jms.jar, la solution à laquelle j'ai trouvé ici.

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

IBM MQ et JMeter : premier contact
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):

IBM MQ et JMeter : premier contact
Figure 15 : Options de connexion MQ

La seconde concerne les noms des objets cibles qui font référence aux files d'attente :

IBM MQ et JMeter : premier contact
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 :

IBM MQ et JMeter : premier contact
Figure 17 : Configuration de JMS Publisher

Et l'Abonné JMS pour lire un message de la file d'attente entrante :

IBM MQ et JMeter : premier contact
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.

IBM MQ et JMeter : premier contact

Source: habr.com