Hallo, Habr!
Dit is een prequel van mijn en tegelijkertijd een remake van het artikel .
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.

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 kan je meer over lezen.
Voor het creƫren ervan is het handig om MQ Explorer te gebruiken:

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:

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:

Afbeelding 3: Het creƫren van de verbindingsfabriek
Kies een duidelijke naam...

Afbeelding 4: Het kiezen van de naam voor de verbindingsfabriek
... en type Queue Connection Factory:

Afbeelding 5: Het kiezen van het type verbindingsfabriek
Protocol - MQ Client voor de mogelijkheid om op afstand met MQ te communiceren:

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:

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

Afbeelding 8: Instellingen van de verbindingsfabriek
En op het tabblad Channels ā kanaal voor verbinding. Klik Voltooien om te voltooien:

Afbeelding 9: Het voltooien van het creƫren van de verbindingsfabriek
Laten we nu een verbinding met de wachtrij maken:

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:

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:

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:

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 in 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 .
- 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:

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

Afbeelding 15: Verbinding parameters voor MQ
De tweede - de namen van de doelobjecten die naar wachtrijen verwijzen:

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:

Afbeelding 17: Instellen van JMS Publisher
En JMS Subscriber om het bericht uit de binnenkomende wachtrij te lezen:

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.

Bron: habr.com
