IBM MQ og JMeter: Første kontakt

Hej Habr!

Dette er en prequel til min tidligere udgivelse og samtidig en genindspilning af artiklen Automatiseret test af tjenester ved hjælp af MQ-protokollen ved hjælp af JMeter.

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.

IBM MQ og JMeter: Første kontakt

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 her du kan læse mere.
For at oprette det er det praktisk at bruge MQ Explorer:

IBM MQ og JMeter: Første kontakt
Figur 1: Tilføjelse af en indledende kontekst

Vælg kontekstfiltypen og lagerbiblioteket .bindinger fil, der vil indeholde en beskrivelse af JNDI-objekter:

IBM MQ og JMeter: Første kontakt
Figur 2: Valg af den oprindelige konteksttype

Derefter kan du begynde at oprette disse objekter. Og start med forbindelsesfabrikken:

IBM MQ og JMeter: Første kontakt
Figur 3: Oprettelse af en forbindelsesfabrik

Vælg et venligt navn...

IBM MQ og JMeter: Første kontakt
Figur 4: Valg af et forbindelsesfabriksnavn

... og skriv Køforbindelsesfabrik:

IBM MQ og JMeter: Første kontakt
Figur 5: Valg af fabriksforbindelsestype

Protokol - MQ klient for at kunne interagere med MQ eksternt:

IBM MQ og JMeter: Første kontakt
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:

IBM MQ og JMeter: Første kontakt
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):

IBM MQ og JMeter: Første kontakt
Figur 8: Konfiguration af forbindelsesfabriksparametre

Og på fanen Kanaler — kanal for tilslutning. Klik Finish at færdiggøre:

IBM MQ og JMeter: Første kontakt
Figur 9: Afslutning af oprettelsen af ​​forbindelsesfabrikken

Lad os nu oprette en forbindelse til køen:

IBM MQ og JMeter: Første kontakt
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 :

IBM MQ og JMeter: Første kontakt
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:

IBM MQ og JMeter: Første kontakt
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:

IBM MQ og JMeter: Første kontakt
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 polarnik в ingen kommentarer med en lille nuance: javax.jms-api-2.0.jar i stedet for jms.jar.
Der opstår en fejl NoClassDEfFoundError med jms.jar, den løsning, som jeg fandt her.

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

IBM MQ og JMeter: Første kontakt
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):

IBM MQ og JMeter: Første kontakt
Figur 15: MQ-forbindelsesmuligheder

Det andet er navnene på målobjekterne, der refererer til køerne:

IBM MQ og JMeter: Første kontakt
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ø:

IBM MQ og JMeter: Første kontakt
Figur 17: Opsætning af JMS Publisher

Og JMS-abonnent til at læse en besked fra den indgående kø:

IBM MQ og JMeter: Første kontakt
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.

IBM MQ og JMeter: Første kontakt

Kilde: www.habr.com