Прывітанне, Хабр!
Гэта прыквел маёй
На гэты раз распавяду аб сваім досведзе прымірэння JMeter і IBM MQ для шчаслівага тэставання прыкладанняў на IBM WAS. Сутыкаўся з такой задачай, лёгка яна не паддавалася. Жадаю дапамагчы зэканоміць час усім зацікаўленым.
Увядзенне
Аб праекце: шына дадзеных, мноства xml-паведамленняў, тры вобласці абмену (чаргі, БД, файлавая сістэма), вэб-сэрвісы са сваёй логікай апрацоўкі паведамленняў. Па меры развіцця праекта тэсціраваць уручную станавілася ўсё больш складана. На дапамогу быў закліканы Apache JMeter - магутны і апенсорсны, з вялікай супольнасцю карыстальнікаў і прыязным інтэрфейсам. Лёгкасць кастамізацыі версіі «са скрынкі» дазваляе пакрыць любыя кейсы, а абяцанне вядучага распрацоўніка дапамагчы калі што (такі дапамог) канчаткова зацвердзіла ў выбары.
Падрыхтоўка пачатковага кантэксту
Для ўзаемадзеяння з мэнэджэрам чэргаў патрэбен пачатковы кантэкст. Ён бывае некалькіх тыпаў, вось
Для яго стварэння зручна выкарыстоўваць MQ Explorer:
Малюнак 1: Даданне пачатковага кантэксту
Выбраць файлавы тып кантэксту і дырэкторыю для захоўвання .bindings файла, які будзе змяшчаць апісанне JNDI-аб'ектаў:
Малюнак 2: Выбар тыпу пачатковага кантэксту
Пасля чаго можна прыступаць да стварэння гэтых аб'ектаў. І пачаць з фабрыкі злучэнняў:
Малюнак 3: Стварэнне фабрыкі злучэнняў
Выбраць зразумелае імя…
Малюнак 4: Выбар імя фабрыкі злучэнняў
… і тып Queue Connection Factory:
Малюнак 5: Выбар тыпу фабрыкі злучэнняў
Пратакол MQ Client для магчымасці ўзаемадзеяння з MQ выдалена:
Малюнак 6: Выбар пратакола фабрыкі злучэнняў
На наступным кроку можна абраць ужо існуючую фабрыку і далейшыя наладкі скапіяваць з яе. Ціснем наступны, калі такой няма:
Малюнак 7: Выбар налад існуючай фабрыкі злучэнняў
У акне выбару параметраў дастаткова задаць тры. На ўкладцы Сувязі пазначыць імя мэнэджара чэргаў і ip стэнда з яго размяшчэннем (порт 1414 пакінуць):
Малюнак 8: Настройка параметраў фабрыкі злучэнняў
І на ўкладцы Каналы - канал для злучэння. Націснуць Заканчэнне для завяршэння:
Малюнак 9: Завяршэнне стварэння фабрыкі злучэнняў
Цяпер створым падлучэнне да чаргі:
Малюнак 10: Стварэнне мэтавага аб'екта
Выберам зразумелае імя (аддаю перавагу ўказваць рэальнае імя чаргі) і тып чаргу:
Малюнак 11: Выбар імя і тыпу мэтавага аб'екта
Па аналогіі з Малюнак 7 можна скапіяваць налады з існуючай чаргі. Таксама ціснем наступны, калі яна першая:
Малюнак 12: Выбар налад існуючага мэтавага аб'екта
У акне налад дастаткова выбраць імя мэнэджара і патрэбную чаргу, націснуць Заканчэнне. Пасля чаго паўтарыць неабходную колькасць разоў, пакуль усе чэргі, патрэбныя для ўзаемадзеяння з 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
Альтэрнатыўны спіс, прапанаваны
З 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 выглядае так:
Малюнак 14: Тэст-план
У прыкладзе тэст-плана пяць зменных. Нягледзячы на малую іх колькасць, рэкамендую заводзіць асобныя канфігурацыйныя элементы пад розныя тыпы зменных. Па меры разрастання тэстаў гэта істотна спросціць навігацыю. У дадзеным выпадку атрымліваецца два спісы. Першы змяшчае параметры падлучэння да MQ (гл. Малюнак 2 и Малюнак 4):
Малюнак 15: Параметры падлучэння да MQ
Другі - імёны мэтавых аб'ектаў, якія спасылаюцца на чарзе:
Малюнак 16: Параметрызаваныя імёны чэргаў
Застаецца наладзіць JMS Publisher для загрузкі тэставага паведамлення ў выходную чаргу:
Малюнак 17: Настройка JMS Publisher
І JMS Subscriber для вычытвання паведамлення з уваходнай чаргі:
Малюнак 18: Настройка JMS Subscriber
Калі ўсё зроблена правільна, вынік выканання ў лістары напоўніцца яркімі і жыццярадаснымі зялёнымі фарбамі.
Заключэнне
Наўмысна апусціў пытанні маршрутызацыі і адміністравання, гэта даволі інтымныя і шырокія тэмы для асобных публікацый.
Акрамя таго, ёсць самавітая порцыя нюансаў у працы з чэргамі, базамі і файламі, пра якія таксама хацелася б пагаварыць асобна і грунтоўна.
Беражыце свой час. І дзякуй за ўвагу.
Крыніца: habr.com