Hej Habr!
Dette er en prequel til min
Denne gang vil jeg fortælle dig om min erfaring med at forene JMeter og IBM MQ til glad test af applikationer på IBM WAS. Jeg stod over for sådan en opgave, det var ikke let. Jeg vil gerne være med til at spare tid for alle interesserede.
Indledning
Om projektet: databus, mange xml-meddelelser, tre udvekslingsområder (køer, database, filsystem), webtjenester med deres egen beskedbehandlingslogik. Efterhånden som projektet skred frem, blev manuel test stadig sværere. Apache JMeter blev kaldt til undsætning - kraftfuld og åben kildekode, med et stort fællesskab af brugere og en venlig grænseflade. Den nemme tilpasning af out-of-the-box-versionen giver dig mulighed for at dække alle sager, og hovedudviklerens løfte om at hjælpe I tilfælde af (det hjalp) bekræftede endelig mit valg.
Forberedelse af den indledende kontekst
For at interagere med kømanageren skal du have en indledende kontekst. Der er flere typer her
For at oprette det er det praktisk at bruge MQ Explorer:
Figur 1: Tilføjelse af en indledende kontekst
Vælg kontekstfiltypen og lagerbiblioteket .bindinger fil, der vil indeholde en beskrivelse af JNDI-objekter:
Figur 2: Valg af den oprindelige konteksttype
Derefter kan du begynde at oprette disse objekter. Og start med forbindelsesfabrikken:
Figur 3: Oprettelse af en forbindelsesfabrik
Vælg et venligt navn...
Figur 4: Valg af et forbindelsesfabriksnavn
... og skriv Køforbindelsesfabrik:
Figur 5: Valg af fabriksforbindelsestype
Protokol - MQ klient for at kunne interagere med MQ eksternt:
Figur 6: Valg af forbindelsesfabriksprotokol
I næste trin kan du vælge en eksisterende fabrik og kopiere yderligere indstillinger fra den. Klik Næste, hvis der ikke er nogen:
Figur 7: Valg af indstillinger for en eksisterende forbindelsesfabrik
I parametervalgsvinduet er det nok at angive tre. På fanen Forbindelse angiv navnet på køadministratoren og IP-standen med dens placering (port 1414 forlade):
Figur 8: Konfiguration af forbindelsesfabriksparametre
Og på fanen Kanaler — kanal for tilslutning. Klik Finish at færdiggøre:
Figur 9: Afslutning af oprettelsen af forbindelsesfabrikken
Lad os nu oprette en forbindelse til køen:
Figur 10: Oprettelse af et målobjekt
Lad os vælge et venligt navn (jeg foretrækker at angive det rigtige navn på køen) og skrive Kø:
Figur 11: Valg af målnavn og type
I analogi med Figur 7 Du kan kopiere indstillinger fra en eksisterende kø. Klik også Næste, hvis det er den første:
Figur 12: Valg af indstillinger for et eksisterende mål
I indstillingsvinduet skal du blot vælge navnet på lederen og den ønskede kø, klik Finish. Gentag derefter det nødvendige antal gange, indtil alle de køer, der er nødvendige for at interagere med JMeter, er blevet oprettet:
Figur 13: Færdiggørelse af måloprettelse
Forberedelse af JMeter
Forberedelse af JMeter består i at tilføje de nødvendige biblioteker for at interagere med MQ. De er placeret i %wmq_home%/java/lib. Kopier dem til %jmeter_home%/lib/ext, før du starter 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
Alternativ liste foreslået
Der opstår en fejl NoClassDEfFoundError med jms.jar, den løsning, som jeg fandt
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- providerutil.jar
Begge lister over biblioteker fungerer med succes med JMeter 5.0 og IBM MQ 8.0.0.4.
Opsætning af en testplan
Det nødvendige og tilstrækkelige sæt af JMeter-elementer ser sådan ud:
Figur 14: Testplan
Der er fem variabler i eksempeltestplanen. På trods af deres lille antal anbefaler jeg at oprette separate konfigurationselementer til forskellige typer variabler. Efterhånden som testene vokser, vil dette gøre navigation meget lettere. I dette tilfælde får vi to lister. Den første indeholder parametre for tilslutning til MQ (se. Figur 2 и Figur 4):
Figur 15: MQ-forbindelsesmuligheder
Det andet er navnene på målobjekterne, der refererer til køerne:
Figur 16: Parametriserede kønavne
Det eneste, der er tilbage, er at konfigurere JMS Publisher til at indlæse testmeddelelsen i den udgående kø:
Figur 17: Opsætning af JMS Publisher
Og JMS-abonnent til at læse en besked fra den indgående kø:
Figur 18: Konfiguration af JMS-abonnent
Hvis alt er gjort korrekt, vil resultatet af udførelsen i listen være fyldt med lyse og muntre grønne farver.
Konklusion
Jeg har bevidst udeladt spørgsmålene om routing og administration; disse er ret intime og omfattende emner til separate publikationer.
Derudover er der en betydelig portion nuancer i arbejdet med køer, databaser og filer, som jeg også gerne vil tale om særskilt og detaljeret.
Spar din tid. Og tak for din opmærksomhed.
Kilde: www.habr.com