IBM MQ en JMeter: Eerste Kontak

Haai Habr!

Dit is 'n prequel vir myne vorige publikasie en terselfdertyd 'n remake van die artikel Outomatiese toetsing van dienste met behulp van die MQ-protokol met behulp van JMeter.

Hierdie keer sal ek jou vertel van my ervaring van die versoening van JMeter en IBM MQ vir gelukkige toetsing van toepassings op IBM WAS. Ek het voor so 'n taak gestaan, dit was nie maklik nie. Ek wil help om tyd te bespaar vir almal wat belangstel.

IBM MQ en JMeter: Eerste Kontak

Inleiding

Oor die projek: databus, baie xml-boodskappe, drie uitruilareas (toue, databasis, lêerstelsel), webdienste met hul eie boodskapverwerkingslogika. Soos die projek gevorder het, het handtoetsing al hoe moeiliker geword. Apache JMeter is tot die redding geroep - kragtig en oopbron, met 'n groot gemeenskap van gebruikers en 'n vriendelike koppelvlak. Die gemak van aanpassing van die out-of-the-box weergawe laat jou toe om enige gevalle te dek, en die hoofontwikkelaar se belofte om te help net vir ingeval (dit het wel gehelp) het uiteindelik my keuse bevestig.

Voorbereiding van die aanvanklike konteks

Om met die toubestuurder te kommunikeer, benodig jy 'n aanvanklike konteks. Daar is verskeie tipes, hier hier jy kan meer lees.
Om dit te skep, is dit gerieflik om MQ Explorer te gebruik:

IBM MQ en JMeter: Eerste Kontak
Figuur 1: Voeg 'n aanvanklike konteks by

Kies die kontekslêertipe en bergingsgids .bindings lêer wat 'n beskrywing van JNDI-objekte sal bevat:

IBM MQ en JMeter: Eerste Kontak
Figuur 2: Kies die aanvanklike kontekstipe

Dan kan jy begin om hierdie voorwerpe te skep. En begin met die verbindingsfabriek:

IBM MQ en JMeter: Eerste Kontak
Figuur 3: Skep 'n verbindingsfabriek

Kies 'n vriendelike naam...

IBM MQ en JMeter: Eerste Kontak
Figuur 4: Kies 'n verbindingsfabrieknaam

... en tik Tou-verbindingsfabriek:

IBM MQ en JMeter: Eerste Kontak
Figuur 5: Kies die tipe verbindingsfabriek

Protokol - MQ kliënt om op afstand met MQ te kan kommunikeer:

IBM MQ en JMeter: Eerste Kontak
Figuur 6: Connection Factory Protocol Seleksie

In die volgende stap kan jy 'n bestaande fabriek kies en verdere instellings daaruit kopieer. Klik volgende, as daar nie een is nie:

IBM MQ en JMeter: Eerste Kontak
Figuur 7: Kies instellings vir 'n bestaande verbindingsfabriek

In die parameterkeusevenster is dit genoeg om drie te spesifiseer. Op die blad verband dui die naam van die toubestuurder en die IP-staanplek aan met sy ligging (poort 1414 verlaat):

IBM MQ en JMeter: Eerste Kontak
Figuur 8: Konfigurasie van verbindingsfabriekparameters

En op die blad Kanale — kanaal vir verbinding. Klik Voltooi om te voltooi:

IBM MQ en JMeter: Eerste Kontak
Figuur 9: Voltooiing van verbindingsfabriekskepping

Kom ons skep nou 'n verbinding met die tou:

IBM MQ en JMeter: Eerste Kontak
Figuur 10: Skep 'n teikenvoorwerp

Kom ons kies 'n vriendelike naam (ek verkies om die regte naam van die tou aan te dui) en tik tou:

IBM MQ en JMeter: Eerste Kontak
Figuur 11: Kies teikennaam en tipe

Deur analogie met Figuur 7 Jy kan instellings vanaf 'n bestaande tou kopieer. Klik ook volgende, as dit die eerste is:

IBM MQ en JMeter: Eerste Kontak
Figuur 12: Kies instellings vir 'n bestaande teiken

In die instellingsvenster, kies net die naam van die bestuurder en die verlangde tou, klik Voltooi. Herhaal dan die vereiste aantal kere totdat al die toue wat nodig is om met JMeter te kommunikeer, geskep is:

IBM MQ en JMeter: Eerste Kontak
Figuur 13: Voltooiing van teikenskepping

Berei JMeter voor

Die voorbereiding van JMeter behels die toevoeging van die biblioteke wat nodig is om met MQ te kommunikeer. Hulle is geleë in %wmq_home%/java/lib. Kopieer hulle na %jmeter_home%/lib/ext voordat JMeter begin word.

  • 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

Alternatiewe lys voorgestel polarnik в kommentaar lewer met 'n klein nuanse: javax.jms-api-2.0.jar in plaas van jms.jar.
'n Fout NoClassDEfFoundError kom voor met jms.jar, die oplossing waarvoor ek gevind het hier.

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

Albei lyste biblioteke werk suksesvol met JMeter 5.0 en IBM MQ 8.0.0.4.

Stel 'n toetsplan op

Die nodige en voldoende stel JMeter-elemente lyk soos volg:

IBM MQ en JMeter: Eerste Kontak
Figuur 14: Toetsplan

Daar is vyf veranderlikes in die voorbeeld toetsplan. Ten spyte van hul klein aantal, beveel ek aan om aparte konfigurasie-elemente vir verskillende tipes veranderlikes te skep. Soos toetse groei, sal dit navigasie baie makliker maak. In hierdie geval kry ons twee lyste. Die eerste bevat parameters om aan MQ te koppel (sien. Figuur 2 и Figuur 4):

IBM MQ en JMeter: Eerste Kontak
Figuur 15: MQ-verbindingsopsies

Die tweede is die name van die teikenobjekte wat na die toue verwys:

IBM MQ en JMeter: Eerste Kontak
Figuur 16: Geparametriseerde touname

Al wat oorbly is om JMS Publisher op te stel om die toetsboodskap in die uitgaande tou te laai:

IBM MQ en JMeter: Eerste Kontak
Figuur 17: Stel JMS Publisher op

En JMS-intekenaar om 'n boodskap uit die inkomende tou te lees:

IBM MQ en JMeter: Eerste Kontak
Figuur 18: Stel JMS-intekenaar op

As alles korrek gedoen word, sal die resultaat van uitvoering in die luisteraar gevul word met helder en vrolike groen kleure.

Gevolgtrekking

Ek het doelbewus die kwessies van roetering en administrasie weggelaat; dit is taamlik intieme en uitgebreide onderwerpe vir aparte publikasies.

Daarbenewens is daar 'n aansienlike gedeelte van nuanses in die werk met rye, databasisse en lêers, waaroor ek ook afsonderlik en in detail wil praat.

Spaar jou tyd. En dankie vir jou aandag.

IBM MQ en JMeter: Eerste Kontak

Bron: will.com