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: Избор на протокол на фабриката за соединения

На следващата стъпка можете да изберете вече съществуваща фабрика и да копирате допълнителните настройки от нея. Нажмите Next, ако такава няма:

IBM MQ и JMeter: Първи контакт
Фигура 7: Избор на настройки на съществуваща фабрика за соединения

В прозореца за избор на параметри е достатъчно да зададете три. На таба Connection посочете името на мениджъра на опашките и IP адреса на стендa, където се намира (портът 1414 остава същият):

IBM MQ и JMeter: Първи контакт
Фигура 8: Настройка на параметрите на фабриката за соединения

И на таба Channels — канал за соединение. Натиснете Завърши за завършване:

IBM MQ и JMeter: Първи контакт
Фигура 9: Завършване на създаването на фабрика за соединения

Сега ще създадем свързване с опашката:

IBM MQ и JMeter: Първи контакт
Рисунок 10: Създаване на целеви обект

Изберете разбираемо име (предпочитам да посоча реалното име на опашката) и тип Опашка:

IBM MQ и JMeter: Първи контакт
Рисунок 11: Избор на име и тип на целевия обект

По аналогия с Рисунок 7 може да копирате настройки от съществуваща опашка. Също натискаме Next, ако е първата:

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster