IBM MQ et JMeter: premier contact

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 initial

Sé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 initial

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


Figure 3: création d'une fabrique de connexions

Choisissez 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 connexions

Protocole - 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 existante

Dans 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 connexion

Et sur l'onglet Canaux , le canal pour la connexion. Cliquez sur Terminer pour terminer:


Figure 9: Fin de la fabrique de connexions

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


Figure 10: création d'une cible

Choisissez 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 cible

Par 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 existante

Dans 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 cible

Pré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 test

L'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 MQ

Le second est le nom des cibles référençant la file d'attente:


Figure 16: Noms de file d'attente paramétrés

Il reste à 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 le message de la file d'attente entrante:


Figure 18: Configuration de l'abonné JMS

Si 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é.

image

Source: https://habr.com/ru/post/fr437172/


All Articles