Здравей, Хабр!
Това е приквел на моя и в същото време ремейк на статията .
Този път ще говоря за преживяването си с интеграцията на JMeter и IBM MQ за щастливо тестване на приложения на IBM WAS. Срещал съм се с такава задача, не беше лесна. Искам да спомогна за спестяване на време на всички заинтересовани.

Въведение
За проекта: шина за данни, множество xml-съобщения, три области на обмен (опашки, БД, файловата система), уеб услуги със собствена логика за обработка на съобщения. С развитието на проекта ръчното тестване ставаше все по-сложно. На помощ дойде Apache JMeter — мощен и с отворен код, с голяма общност от потребители и приятелски интерфейс. Лесната персонализация на версията 'от кутията' позволява покритие на всякакви случаи, а обещанието на водещия разработчик за помощ ако е необходимо (и наистина помогна) окончателно утвърди избора ми.
Подготовка на началния контекст
За взаимодействие с мениджъра на опашките е нужен начален контекст. Той има няколко типа, ето можете да прочетете повече.
За неговото създаване е удобно да се използва MQ Explorer:

Фигура 1: Добавяне на начален контекст
Изберете файловия тип на контекста и директорията за съхранение .bindings файл, който ще съдържа описание на JNDI обектите:

Фигура 2: Избор на тип начален контекст
След което можете да започнете създаването на тези обекти. И да започнете с фабриката за соединения:

Фигура 3: Създаване на фабрика за соединения
Изберете разбираемо име…

Фигура 4: Избор на име на фабрика за соединения
… и тип Queue Connection Factory:

Фигура 5: Избор на тип фабрика за соединения
Протокол — MQ Client за възможност за взаимодействие с MQ отдалечено:

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

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

Фигура 8: Настройка на параметрите на фабриката за соединения
И на таба Channels — канал за соединение. Натиснете Завърши за завършване:

Фигура 9: Завършване на създаването на фабрика за соединения
Сега ще създадем свързване с опашката:

Рисунок 10: Създаване на целеви обект
Изберете разбираемо име (предпочитам да посоча реалното име на опашката) и тип Опашка:

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

Рисунок 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
Алтернативен списък, предложен в с малък нюанс: 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 изглежда така:

Рисунок 14: Тестов план
В примера на тестовия план има пет променливи. Въпреки малкия им брой, препоръчвам да създадете отделни конфигурационни елементи за различни типове променливи. При разрастването на тестовете, това значително ще улесни навигацията. В този случай се получават два списъка. Първият съдържа параметри за свързване с MQ (вж. Изображение 2 и Рисунок 4):

Рисунок 15: Параметри за свързване с MQ
Вторият — имена на целеви обекти, свързващи се с опашките:

Рисунок 16: Параметризирани имена на опашките
Остава да настроите JMS Publisher за зареждане на тестово съобщение в изходящата опашка:

Рисунок 17: Настройка на JMS Publisher
И JMS Subscriber за изтегляне на съобщение от входящата опашка:

Рисунок 18: Настройка на JMS Subscriber
Ако всичко е направено правилно, резултатът от изпълнението в слушателя ще се напълни с ярки и радостни зелени цветове.
Заключение
Намерено е нарочно да не се споменават въпросите на маршрутизиране и администриране, тъй като това са доста интимни и обширни теми за отделни публикации.
Освен това има редица нюанси в работата с опашки, бази и файлове, които също биха искали да обсъдим поотделно и задълбочено.
Пазете времето си. И благодаря за вниманието.

Източник: habr.com
