Hé Habr!
Dit is een prequel op de mijne
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.
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
Om het te maken, is het handig om MQ Explorer te gebruiken:
Figuur 1: Een initiële context toevoegen
Selecteer het contextbestandstype en de opslagmap .bindingen bestand dat een beschrijving van JNDI-objecten bevat:
Figuur 2: Het initiële contexttype selecteren
Vervolgens kunt u beginnen met het maken van deze objecten. En begin met de verbindingsfabriek:
Figuur 3: Een verbindingsfabriek creëren
Kies een vriendelijke naam...
Figuur 4: Een fabrieksnaam voor een verbinding selecteren
... en typ Wachtrijverbindingsfabriek:
Figuur 5: Selectie van het fabriekstype van de verbinding
Protocol - MQ-klant om op afstand met MQ te kunnen communiceren:
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:
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):
Figuur 8: Verbindingsfabrieksparameters configureren
En op het tabblad Kanalen — kanaal voor verbinding. Klik Finish vervolledigen:
Afbeelding 9: Het maken van de verbindingsfabriek voltooien
Laten we nu een verbinding met de wachtrij maken:
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:
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:
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:
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
Er treedt een fout NoClassDEfFoundError op met jms.jar, de oplossing die ik heb gevonden
- 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:
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):
Afbeelding 15: MQ-verbindingsopties
De tweede zijn de namen van de doelobjecten die naar de wachtrijen verwijzen:
Afbeelding 16: Geparametriseerde wachtrijnamen
Het enige dat overblijft is het configureren van JMS Publisher om het testbericht in de uitgaande wachtrij te laden:
Figuur 17: JMS Publisher instellen
En JMS Subscriber om een bericht uit de inkomende wachtrij te lezen:
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.
Bron: www.habr.com