IBM MQ og JMeter: Første kontakt

Hei Habr!

Dette er en prequel til min tidligere utgivelse og samtidig en nyinnspilling av artikkelen Automatisert testing av tjenester ved bruk av MQ-protokollen ved bruk av JMeter.

Denne gangen vil jeg fortelle deg om min erfaring med å forene JMeter og IBM MQ for glad testing av applikasjoner på IBM WAS. Jeg sto overfor en slik oppgave, det var ikke lett. Jeg vil bidra til å spare tid for alle interesserte.

IBM MQ og JMeter: Første kontakt

Innledning

Om prosjektet: databuss, mange xml-meldinger, tre utvekslingsområder (køer, database, filsystem), webtjenester med egen meldingsbehandlingslogikk. Etter hvert som prosjektet skred frem, ble manuell testing stadig vanskeligere. Apache JMeter ble kalt til unnsetning – kraftig og åpen kildekode, med et stort brukerfellesskap og et vennlig grensesnitt. Den enkle tilpasningen av ut-av-boksen-versjonen lar deg dekke alle tilfeller, og hovedutviklerens løfte om å hjelpe for sikkerhets skyld (det hjalp) bekreftet endelig valget mitt.

Forberede den innledende konteksten

For å samhandle med køadministratoren trenger du en innledende kontekst. Det er flere typer her her du kan lese mer.
For å lage den er det praktisk å bruke MQ Explorer:

IBM MQ og JMeter: Første kontakt
Figur 1: Legge til en innledende kontekst

Velg kontekstfiltypen og lagringskatalogen .bindinger fil som vil inneholde en beskrivelse av JNDI-objekter:

IBM MQ og JMeter: Første kontakt
Figur 2: Velge den innledende konteksttypen

Deretter kan du begynne å lage disse objektene. Og start med tilkoblingsfabrikken:

IBM MQ og JMeter: Første kontakt
Figur 3: Opprette en tilkoblingsfabrikk

Velg et vennlig navn...

IBM MQ og JMeter: Første kontakt
Figur 4: Velge et tilkoblingsfabrikknavn

... og skriv Køtilkoblingsfabrikk:

IBM MQ og JMeter: Første kontakt
Figur 5: Velge tilkoblingsfabrikktype

Protokoll - MQ klient for å kunne kommunisere med MQ eksternt:

IBM MQ og JMeter: Første kontakt
Figur 6: Valg av tilkoblingsfabrikkprotokoll

I neste trinn kan du velge en eksisterende fabrikk og kopiere ytterligere innstillinger fra den. Klikk neste, hvis det ikke er noen:

IBM MQ og JMeter: Første kontakt
Figur 7: Velge innstillinger for en eksisterende tilkoblingsfabrikk

I parametervalgvinduet er det nok å spesifisere tre. På fanen Tilkobling angi navnet på køadministratoren og IP-stativet med plasseringen (port 1414 permisjon):

IBM MQ og JMeter: Første kontakt
Figur 8: Konfigurering av fabrikkinnstillinger for tilkobling

Og på fanen kanaler — kanal for tilkobling. Klikk Finish å fullføre:

IBM MQ og JMeter: Første kontakt
Figur 9: Fullfører opprettelsen av tilkoblingsfabrikken

La oss nå opprette en tilkobling til køen:

IBM MQ og JMeter: Første kontakt
Figur 10: Opprette et målobjekt

La oss velge et vennlig navn (jeg foretrekker å angi det virkelige navnet på køen) og skriv :

IBM MQ og JMeter: Første kontakt
Figur 11: Velge målnavn og type

I analogi med Figur 7 Du kan kopiere innstillinger fra en eksisterende kø. Klikk også neste, hvis det er den første:

IBM MQ og JMeter: Første kontakt
Figur 12: Velge innstillinger for et eksisterende mål

I innstillingsvinduet velger du bare navnet på lederen og ønsket kø, klikker Finish. Gjenta deretter det nødvendige antallet ganger til alle køene som trengs for å samhandle med JMeter er opprettet:

IBM MQ og JMeter: Første kontakt
Figur 13: Fullføre måloppretting

Forbereder JMeter

Forberedelse av JMeter består av å legge til bibliotekene som trengs for å samhandle med MQ. De er plassert 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ått polarnik в ingen kommentarer med en liten nyanse: javax.jms-api-2.0.jar i stedet for jms.jar.
En feil NoClassDEfFoundError oppstår med jms.jar, løsningen jeg fant her.

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

Begge listene over biblioteker fungerer vellykket med JMeter 5.0 og IBM MQ 8.0.0.4.

Sette opp en testplan

Det nødvendige og tilstrekkelige settet med JMeter-elementer ser slik ut:

IBM MQ og JMeter: Første kontakt
Figur 14: Testplan

Det er fem variabler i eksempeltestplanen. Til tross for det lille antallet anbefaler jeg å lage separate konfigurasjonselementer for forskjellige typer variabler. Etter hvert som testene vokser, vil dette gjøre navigeringen mye enklere. I dette tilfellet får vi to lister. Den første inneholder parametere for tilkobling til MQ (se. Figur 2 и Figur 4):

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

Det andre er navnene på målobjektene som refererer til køene:

IBM MQ og JMeter: Første kontakt
Figur 16: Parameteriserte kønavn

Alt som gjenstår er å konfigurere JMS Publisher til å laste testmeldingen inn i den utgående køen:

IBM MQ og JMeter: Første kontakt
Figur 17: Sette opp JMS Publisher

Og JMS-abonnent for å lese en melding fra den innkommende køen:

IBM MQ og JMeter: Første kontakt
Figur 18: Konfigurere JMS-abonnent

Hvis alt er gjort riktig, vil resultatet av utførelse i listener bli fylt med lyse og muntre grønne farger.

Konklusjon

Jeg har bevisst utelatt spørsmålene om ruting og administrasjon; dette er ganske intime og omfattende emner for separate publikasjoner.

I tillegg er det en betydelig del av nyanser i arbeidet med køer, databaser og filer, som jeg også gjerne vil snakke om separat og detaljert.

Spar tid. Og takk for oppmerksomheten.

IBM MQ og JMeter: Første kontakt

Kilde: www.habr.com