IBM MQ en JMeter: Eerste contact

Hé Habr!

Dit is een prequel op de mijne vorige publicatie en tegelijkertijd een remake van het artikel Geautomatiseerd testen van services met behulp van het MQ-protocol met behulp van JMeter.

Deze keer vertel ik je over mijn ervaring met het combineren van JMeter en IBM MQ voor het succesvol testen van applicaties op IBM WAS. Ik stond voor zo'n taak, het was niet gemakkelijk. Ik wil helpen tijd te besparen voor alle geïnteresseerden.

IBM MQ en JMeter: Eerste contact

Introductie

Over het project: databus, veel xml-berichten, drie uitwisselingsgebieden (wachtrijen, database, bestandssysteem), webservices met hun eigen berichtverwerkingslogica. Naarmate het project vorderde, werd het handmatig testen steeds moeilijker. Apache JMeter kwam te hulp: krachtig en open source, met een grote gebruikersgemeenschap en een gebruiksvriendelijke interface. Dankzij het gemak waarmee u de kant-en-klare versie kunt aanpassen, kunt u alle gevallen dekken, en de belofte van de hoofdontwikkelaar om te helpen als iets (het hielp wel) bevestigde eindelijk mijn keuze.

Het voorbereiden van de initiële context

Voor interactie met de wachtrijbeheerder heeft u een initiële context nodig. Er zijn verschillende soorten, hier hier je kunt meer lezen.
Om het te maken, is het handig om MQ Explorer te gebruiken:

IBM MQ en JMeter: Eerste contact
Figuur 1: Een initiële context toevoegen

Selecteer het contextbestandstype en de opslagmap .bindingen bestand dat een beschrijving van JNDI-objecten bevat:

IBM MQ en JMeter: Eerste contact
Figuur 2: Het initiële contexttype selecteren

Vervolgens kunt u beginnen met het maken van deze objecten. En begin met de verbindingsfabriek:

IBM MQ en JMeter: Eerste contact
Figuur 3: Een verbindingsfabriek creëren

Kies een vriendelijke naam...

IBM MQ en JMeter: Eerste contact
Figuur 4: Een fabrieksnaam voor een verbinding selecteren

... en typ Wachtrijverbindingsfabriek:

IBM MQ en JMeter: Eerste contact
Figuur 5: Selectie van het fabriekstype van de verbinding

Protocol - MQ-klant om op afstand met MQ te kunnen communiceren:

IBM MQ en JMeter: Eerste contact
Figuur 6: Selectie van verbindingsfabrieksprotocol

In de volgende stap kunt u een bestaande fabriek selecteren en daaruit verdere instellingen kopiëren. Klik Volgende, als er geen is:

IBM MQ en JMeter: Eerste contact
Figuur 7: Instellingen selecteren voor een bestaande verbindingsfabriek

In het parameterselectievenster volstaat het om er drie op te geven. Op het tabblad Aansluiting geef de naam op van de wachtrijbeheerder en de IP-standaard met zijn locatie (poort 1414 vertrekken):

IBM MQ en JMeter: Eerste contact
Figuur 8: Verbindingsfabrieksparameters configureren

En op het tabblad Kanalen — kanaal voor verbinding. Klik Finish vervolledigen:

IBM MQ en JMeter: Eerste contact
Afbeelding 9: Het maken van de verbindingsfabriek voltooien

Laten we nu een verbinding met de wachtrij maken:

IBM MQ en JMeter: Eerste contact
Figuur 10: Een doelobject maken

Laten we een beschrijvende naam kiezen (ik geef er de voorkeur aan om de echte naam van de wachtrij aan te geven) en typen Queue:

IBM MQ en JMeter: Eerste contact
Figuur 11: Doelnaam en -type selecteren

naar analogie met Figuur 7 U kunt instellingen uit een bestaande wachtrij kopiëren. Klik ook Volgende, als het de eerste is:

IBM MQ en JMeter: Eerste contact
Figuur 12: Instellingen selecteren voor een bestaand doel

In het instellingenvenster selecteert u gewoon de naam van de manager en de gewenste wachtrij en klikt u op Finish. Herhaal vervolgens het vereiste aantal keren totdat alle wachtrijen die nodig zijn voor interactie met JMeter zijn aangemaakt:

IBM MQ en JMeter: Eerste contact
Afbeelding 13: Het maken van doelen voltooien

JMeter voorbereiden

Het voorbereiden van JMeter omvat het toevoegen van de bibliotheken die nodig zijn voor interactie met MQ. Ze bevinden zich in %wmq_home%/java/lib. Kopieer ze naar %jmeter_home%/lib/ext voordat u JMeter start.

  • 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

Alternatieve lijst voorgesteld polarnik в Comments met een kleine nuance: javax.jms-api-2.0.jar in plaats van jms.jar.
Er treedt een fout NoClassDEfFoundError op met jms.jar, de oplossing die ik heb gevonden hier.

  • com.ibm.mq.allclient.jar
  • fscontext.jar
  • javax.jms-api-2.0.jar
  • providerutil.jar

Beide bibliothekenlijsten werken succesvol met JMeter 5.0 en IBM MQ 8.0.0.4.

Opstellen van een testplan

De noodzakelijke en voldoende set JMeter-elementen ziet er als volgt uit:

IBM MQ en JMeter: Eerste contact
Figuur 14: Testplan

Er zijn vijf variabelen in het voorbeeldtestplan. Ondanks hun kleine aantal raad ik aan om afzonderlijke configuratie-elementen te maken voor verschillende soorten variabelen. Naarmate het aantal tests toeneemt, wordt navigatie veel eenvoudiger. In dit geval krijgen we twee lijsten. De eerste bevat parameters voor verbinding met MQ (zie. Figuur 2 и Figuur 4):

IBM MQ en JMeter: Eerste contact
Afbeelding 15: MQ-verbindingsopties

De tweede zijn de namen van de doelobjecten die naar de wachtrijen verwijzen:

IBM MQ en JMeter: Eerste contact
Afbeelding 16: Geparametriseerde wachtrijnamen

Het enige dat overblijft is het configureren van JMS Publisher om het testbericht in de uitgaande wachtrij te laden:

IBM MQ en JMeter: Eerste contact
Figuur 17: JMS Publisher instellen

En JMS Subscriber om een ​​bericht uit de inkomende wachtrij te lezen:

IBM MQ en JMeter: Eerste contact
Figuur 18: JMS-abonnee configureren

Als alles correct is gedaan, wordt het resultaat van de uitvoering in de listner gevuld met heldere en vrolijke groene kleuren.

Conclusie

De onderwerpen routing en administratie heb ik bewust achterwege gelaten; dit zijn nogal intieme en uitgebreide onderwerpen voor aparte publicaties.

Daarnaast zit er een aanzienlijk deel van de nuances in het werken met wachtrijen, databases en bestanden, waar ik ook graag afzonderlijk en in detail over wil praten.

Bespaar tijd. En bedankt voor uw aandacht.

IBM MQ en JMeter: Eerste contact

Bron: www.habr.com