IBM MQ en JMeter: Eerste contact

Hallo, Habr!

Dit is een prequel van mijn vorige publicatie en tegelijkertijd een remake van het artikel Geautomatiseerd testen van services die het MQ-protocol gebruiken met JMeter.

Dit keer vertel ik over mijn ervaring met het combineren van JMeter en IBM MQ voor gelukkig testen van applicaties op IBM WAS. Ik kwam dit probleem tegen, het was niet eenvoudig op te lossen. Ik wil helpen om tijd te besparen voor alle betrokkenen.

IBM MQ en JMeter: Eerste contact

Inleiding

Over het project: databus, veel xml-berichten, drie uitwisselingsgebieden (wachtrijen, database, bestandssysteem), webservices met hun eigen logica voor het verwerken van berichten. Naarmate het project voortschreed, werd handmatig testen steeds moeilijker. Apache JMeter werd ingeschakeld - krachtig en open-source, met een grote gebruikersgemeenschap en een gebruiksvriendelijke interface. De gemakkelijk aanpasbare 'out of the box'-versie maakt het mogelijk om allerlei scenario's te dekken, en de belofte van de hoofdontwikkelaar om te helpen als dat nodig is (hij hielp inderdaad) bevestigde mijn keuze.

Voorbereiding van de initiƫle context

Voor interactie met de wachtrijbeheerder is er een initiƫle context nodig. Deze zijn er in verschillende types, hier here kan je meer over lezen.
Voor het creƫren ervan is het handig om MQ Explorer te gebruiken:

IBM MQ en JMeter: Eerste contact
Afbeelding 1: Het toevoegen van de initiƫle context

Kies het bestandstype van de context en de directory voor opslag .bindings bestand, dat de beschrijving van de JNDI-objecten zal bevatten:

IBM MQ en JMeter: Eerste contact
Afbeelding 2: Het kiezen van het type initiƫle context

Daarna kan je beginnen met het creƫren van deze objecten. Begin met de verbindingsfabriek:

IBM MQ en JMeter: Eerste contact
Afbeelding 3: Het creƫren van de verbindingsfabriek

Kies een duidelijke naam...

IBM MQ en JMeter: Eerste contact
Afbeelding 4: Het kiezen van de naam voor de verbindingsfabriek

... en type Queue Connection Factory:

IBM MQ en JMeter: Eerste contact
Afbeelding 5: Het kiezen van het type verbindingsfabriek

Protocol - MQ Client voor de mogelijkheid om op afstand met MQ te communiceren:

IBM MQ en JMeter: Eerste contact
Afbeelding 6: Het kiezen van het protocol voor de verbindingsfabriek

In de volgende stap kan je een bestaande fabriek kiezen en verdere instellingen daarvan kopiƫren. Klik Volgende, als die er niet is:

IBM MQ en JMeter: Eerste contact
Afbeelding 7: Het kiezen van de instellingen van een bestaande verbindingsfabriek

In het venster voor het kiezen van parameters is het voldoende om drie in te voeren. Op het tabblad Verbinden geef de naam van de wachtrijbeheerder en het ip-adres van de locatie (poort 1414 laten staan):

IBM MQ en JMeter: Eerste contact
Afbeelding 8: Instellingen van de verbindingsfabriek

En op het tabblad Channels — kanaal voor verbinding. Klik Voltooien om te voltooien:

IBM MQ en JMeter: Eerste contact
Afbeelding 9: Het voltooien van het creƫren van de verbindingsfabriek

Laten we nu een verbinding met de wachtrij maken:

IBM MQ en JMeter: Eerste contact
Afbeelding 10: Doelobject creƫren

Laten we een begrijpelijke naam kiezen (ik geef de voorkeur aan het opgeven van de echte naam van de wachtrij) en het type Wachtrij:

IBM MQ en JMeter: Eerste contact
Afbeelding 11: Naam en type van het doelobject kiezen

Net als bij Afbeelding 7 kunnen de instellingen van een bestaande wachtrij worden gekopieerd. We drukken ook op Volgende, als deze de eerste is:

IBM MQ en JMeter: Eerste contact
Afbeelding 12: Instellingen van het bestaande doelobject kiezen

In het instellingenvenster is het voldoende om de naam van de manager en de gewenste wachtrij te selecteren en op te drukken Voltooien. Herhaal dit het benodigde aantal keer totdat alle wachtrijen voor samenwerking met JMeter zijn aangemaakt:

IBM MQ en JMeter: Eerste contact
Afbeelding 13: Voltooiing van het creƫren van het doelobject

JMeter voorbereiden

De voorbereiding van JMeter bestaat uit het toevoegen van bibliotheken die nodig zijn voor de interactie met MQ. Ze bevinden zich in %wmq_home%/java/lib. Kopieer ze naar %jmeter_home%/lib/ext voordat je 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 door polarnik in reacties met een kleine nuance: javax.jms-api-2.0.jar in plaats van jms.jar.
Bij jms.jar treedt de fout NoClassDEfFoundError op, waarvan de oplossing werd gevonden here.

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

Beide bibliotheek lijsten werken succesvol met JMeter 5.0 en IBM MQ 8.0.0.4.

Testplan configureren

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

IBM MQ en JMeter: Eerste contact
Afbeelding 14: Testplan

In dit voorbeeld bestaan er vijf variabelen. Ondanks hun geringe aantal, raad ik aan om aparte configuratie-elementen aan te maken voor verschillende soorten variabelen. Naarmate de tests groeien, zal dit de navigatie aanzienlijk vereenvoudigen. In dit geval zijn er dus twee lijsten. De eerste bevat de verbindingsparameters voor MQ (zie Figuur 2 en Afbeelding 4):

IBM MQ en JMeter: Eerste contact
Afbeelding 15: Verbinding parameters voor MQ

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

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

Het enige wat nog rest, is de JMS Publisher in te stellen om een testbericht in de uitgaande wachtrij te laden:

IBM MQ en JMeter: Eerste contact
Afbeelding 17: Instellen van JMS Publisher

En JMS Subscriber om het bericht uit de binnenkomende wachtrij te lezen:

IBM MQ en JMeter: Eerste contact
Afbeelding 18: Instellen van JMS Subscriber

Als alles goed is gedaan, zal het resultaat van de uitvoering in de listener gevuld zijn met levendige en vrolijke groene kleuren.

Conclusie

Ik heb de vragen over routering en administratie opzettelijk weggelaten, dit zijn vrij intieme en uitgebreide onderwerpen voor afzonderlijke publicaties.

Daarnaast zijn er aanzienlijke nuances in de omgang met wachtrijen, databases en bestanden, waarover ook apart en uitvoerig gesproken zou moeten worden.

Bespaar uw tijd. En bedankt voor uw aandacht.

IBM MQ en JMeter: Eerste contact

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster