IBM MQ і JMeter: Першы кантакт

Прывітанне, Хабр!

Гэта прыквел маёй папярэдняй публікацыі і ў той жа час рэмейк артыкула Аўтаматызаванае тэсціраванне сэрвісаў, якія выкарыстоўваюць пратакол MQ з дапамогай JMeter.

На гэты раз распавяду аб сваім досведзе прымірэння JMeter і IBM MQ для шчаслівага тэставання прыкладанняў на IBM WAS. Сутыкаўся з такой задачай, лёгка яна не паддавалася. Жадаю дапамагчы зэканоміць час усім зацікаўленым.

IBM MQ і JMeter: Першы кантакт

Увядзенне

Аб праекце: шына дадзеных, мноства xml-паведамленняў, тры вобласці абмену (чаргі, БД, файлавая сістэма), вэб-сэрвісы са сваёй логікай апрацоўкі паведамленняў. Па меры развіцця праекта тэсціраваць уручную станавілася ўсё больш складана. На дапамогу быў закліканы Apache JMeter - магутны і апенсорсны, з вялікай супольнасцю карыстальнікаў і прыязным інтэрфейсам. Лёгкасць кастамізацыі версіі «са скрынкі» дазваляе пакрыць любыя кейсы, а абяцанне вядучага распрацоўніка дапамагчы калі што (такі дапамог) канчаткова зацвердзіла ў выбары.

Падрыхтоўка пачатковага кантэксту

Для ўзаемадзеяння з мэнэджэрам чэргаў патрэбен пачатковы кантэкст. Ён бывае некалькіх тыпаў, вось тут можна пачытаць падрабязней.
Для яго стварэння зручна выкарыстоўваць MQ Explorer:

IBM MQ і JMeter: Першы кантакт
Малюнак 1: Даданне пачатковага кантэксту

Выбраць файлавы тып кантэксту і дырэкторыю для захоўвання .bindings файла, які будзе змяшчаць апісанне JNDI-аб'ектаў:

IBM MQ і JMeter: Першы кантакт
Малюнак 2: Выбар тыпу пачатковага кантэксту

Пасля чаго можна прыступаць да стварэння гэтых аб'ектаў. І пачаць з фабрыкі злучэнняў:

IBM MQ і JMeter: Першы кантакт
Малюнак 3: Стварэнне фабрыкі злучэнняў

Выбраць зразумелае імя…

IBM MQ і JMeter: Першы кантакт
Малюнак 4: Выбар імя фабрыкі злучэнняў

… і тып Queue Connection Factory:

IBM MQ і JMeter: Першы кантакт
Малюнак 5: Выбар тыпу фабрыкі злучэнняў

Пратакол MQ Client для магчымасці ўзаемадзеяння з MQ выдалена:

IBM MQ і JMeter: Першы кантакт
Малюнак 6: Выбар пратакола фабрыкі злучэнняў

На наступным кроку можна абраць ужо існуючую фабрыку і далейшыя наладкі скапіяваць з яе. Ціснем наступны, калі такой няма:

IBM MQ і JMeter: Першы кантакт
Малюнак 7: Выбар налад існуючай фабрыкі злучэнняў

У акне выбару параметраў дастаткова задаць тры. На ўкладцы Сувязі пазначыць імя мэнэджара чэргаў і ip стэнда з яго размяшчэннем (порт 1414 пакінуць):

IBM MQ і JMeter: Першы кантакт
Малюнак 8: Настройка параметраў фабрыкі злучэнняў

І на ўкладцы Каналы - канал для злучэння. Націснуць Заканчэнне для завяршэння:

IBM MQ і JMeter: Першы кантакт
Малюнак 9: Завяршэнне стварэння фабрыкі злучэнняў

Цяпер створым падлучэнне да чаргі:

IBM MQ і JMeter: Першы кантакт
Малюнак 10: Стварэнне мэтавага аб'екта

Выберам зразумелае імя (аддаю перавагу ўказваць рэальнае імя чаргі) і тып чаргу:

IBM MQ і JMeter: Першы кантакт
Малюнак 11: Выбар імя і тыпу мэтавага аб'екта

Па аналогіі з Малюнак 7 можна скапіяваць налады з існуючай чаргі. Таксама ціснем наступны, калі яна першая:

IBM MQ і JMeter: Першы кантакт
Малюнак 12: Выбар налад існуючага мэтавага аб'екта

У акне налад дастаткова выбраць імя мэнэджара і патрэбную чаргу, націснуць Заканчэнне. Пасля чаго паўтарыць неабходную колькасць разоў, пакуль усе чэргі, патрэбныя для ўзаемадзеяння з JMeter, не будуць створаны:

IBM MQ і JMeter: Першы кантакт
Малюнак 13: Завяршэнне стварэння мэтавага аб'екта

Падрыхтоўка JMeter

Падрыхтоўка JMeter заключаецца ў даданні бібліятэк, неабходных для ўзаемадзеяння з MQ. Яны размяшчаюцца ў %wmq_home%/java/lib. Скапіюйце іх у %jmeter_home%/lib/ext перад запускам 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

Альтэрнатыўны спіс, прапанаваны polarnik в каментары з невялікім нюансам: javax.jms-api-2.0.jar замест jms.jar.
З jms.jar узнікае памылка NoClassDEfFoundError, рашэнне якой знайшоў тут.

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

Абодва спісы бібліятэк паспяхова працуюць з JMeter 5.0 і IBM MQ 8.0.0.4.

Настройка тэст-плана

Неабходны і дастатковы набор элементаў JMeter выглядае так:

IBM MQ і JMeter: Першы кантакт
Малюнак 14: Тэст-план

У прыкладзе тэст-плана пяць зменных. Нягледзячы на ​​малую іх колькасць, рэкамендую заводзіць асобныя канфігурацыйныя элементы пад розныя тыпы зменных. Па меры разрастання тэстаў гэта істотна спросціць навігацыю. У дадзеным выпадку атрымліваецца два спісы. Першы змяшчае параметры падлучэння да MQ (гл. Малюнак 2 и Малюнак 4):

IBM MQ і JMeter: Першы кантакт
Малюнак 15: Параметры падлучэння да MQ

Другі - імёны мэтавых аб'ектаў, якія спасылаюцца на чарзе:

IBM MQ і JMeter: Першы кантакт
Малюнак 16: Параметрызаваныя імёны чэргаў

Застаецца наладзіць JMS Publisher для загрузкі тэставага паведамлення ў выходную чаргу:

IBM MQ і JMeter: Першы кантакт
Малюнак 17: Настройка JMS Publisher

І JMS Subscriber для вычытвання паведамлення з уваходнай чаргі:

IBM MQ і JMeter: Першы кантакт
Малюнак 18: Настройка JMS Subscriber

Калі ўсё зроблена правільна, вынік выканання ў лістары напоўніцца яркімі і жыццярадаснымі зялёнымі фарбамі.

Заключэнне

Наўмысна апусціў пытанні маршрутызацыі і адміністравання, гэта даволі інтымныя і шырокія тэмы для асобных публікацый.

Акрамя таго, ёсць самавітая порцыя нюансаў у працы з чэргамі, базамі і файламі, пра якія таксама хацелася б пагаварыць асобна і грунтоўна.

Беражыце свой час. І дзякуй за ўвагу.

IBM MQ і JMeter: Першы кантакт

Крыніца: habr.com