IBM MQ i JMeter: Pierwszy kontakt

Hej Habra!

To prequel mojego poprzednia publikacja i jednocześnie remake artykułu Zautomatyzowane testowanie usług z wykorzystaniem protokołu MQ przy użyciu JMeter.

Tym razem opowiem Wam o moich doświadczeniach w godzeniu JMeter i IBM MQ w celu przyjemnego testowania aplikacji na IBM WAS. Stanąłem przed takim zadaniem, nie było to łatwe. Chcę pomóc zaoszczędzić czas wszystkim zainteresowanym.

IBM MQ i JMeter: Pierwszy kontakt

Wprowadzenie

O projekcie: magistrala danych, wiele wiadomości xml, trzy obszary wymiany (kolejki, baza danych, system plików), usługi sieciowe z własną logiką przetwarzania wiadomości. W miarę postępu projektu testowanie ręczne stawało się coraz trudniejsze. Na ratunek wezwano Apache JMeter - potężny i open source, z dużą społecznością użytkowników i przyjaznym interfejsem. Łatwość dostosowywania gotowej wersji pozwala na pokrycie wszelkich przypadków, a główny programista zapewnia pomoc w razie czego (to pomogło) w końcu potwierdziłem mój wybór.

Przygotowanie kontekstu początkowego

Do interakcji z menedżerem kolejek potrzebny jest kontekst początkowy. Tutaj jest kilka typów tutaj możesz przeczytać więcej.
Aby go utworzyć, wygodnie jest użyć MQ Explorer:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 1: Dodawanie kontekstu początkowego

Wybierz typ pliku kontekstowego i katalog przechowywania .wiązania plik, który będzie zawierał opis obiektów JNDI:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 2: Wybór typu kontekstu początkowego

Następnie możesz rozpocząć tworzenie tych obiektów. I zacznij od fabryki połączeń:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 3: Tworzenie fabryki połączeń

Wybierz przyjazną nazwę...

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 4: Wybór nazwy fabryki połączeń

... i wpisz Fabryka Połączeń Kolejkowych:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 5: Wybór typu fabryki połączeń

Protokół - Klient MQ aby móc zdalnie komunikować się z MQ:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 6: Wybór protokołu fabryki połączeń

W kolejnym kroku możesz wybrać istniejącą fabrykę i skopiować z niej dalsze ustawienia. Kliknij Następna, jeśli nie ma:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 7: Wybór ustawień istniejącej fabryki połączeń

W oknie wyboru parametrów wystarczy podać trzy. Na karcie Statystyki z konta wskazać nazwę menedżera kolejek i stanowisko IP z jego lokalizacją (port 1414 Zostawić):

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 8: Konfigurowanie parametrów fabryki połączeń

I na karcie Kanały — kanał do podłączenia. Kliknij koniec ukończyć:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 9: Zakończenie tworzenia fabryki połączeń

Utwórzmy teraz połączenie z kolejką:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 10: Tworzenie obiektu docelowego

Wybierzmy przyjazną nazwę (wolę podać prawdziwą nazwę kolejki) i wpiszmy kolejka:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 11: Wybieranie nazwy i typu celu

Przez analogię z Rysunek 7 Możesz skopiować ustawienia z istniejącej kolejki. Kliknij także Następna, jeśli jest to pierwsze:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 12: Wybieranie ustawień istniejącego celu

W oknie ustawień wystarczy wybrać nazwę menedżera i żądaną kolejkę, kliknąć koniec. Następnie powtórz wymaganą liczbę razy, aż zostaną utworzone wszystkie kolejki potrzebne do interakcji z JMeter:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 13: Zakończenie tworzenia celu

Przygotowanie JMetera

Przygotowanie JMeter polega na dodaniu bibliotek potrzebnych do interakcji z MQ. Znajdują się one w %wmq_home%/Java/lib. Skopiuj je do %jmeter_home%/lib/ext przed uruchomieniem 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
  • dostawcautil.jar

Sugerowana lista alternatywna polarnik в Komentarze z małym niuansem: javax.jms-api-2.0.jar zamiast jms.jar.
W pliku jms.jar pojawia się błąd NoClassDEfFoundError, rozwiązanie, które znalazłem tutaj.

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

Obie listy bibliotek działają pomyślnie z JMeter 5.0 i IBM MQ 8.0.0.4.

Utworzenie planu testów

Niezbędny i wystarczający zestaw elementów JMeter wygląda następująco:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 14: Plan testów

W przykładowym planie testów znajduje się pięć zmiennych. Pomimo ich niewielkiej liczby, zalecam utworzenie osobnych elementów konfiguracyjnych dla różnych typów zmiennych. W miarę zwiększania się liczby testów nawigacja będzie znacznie łatwiejsza. W tym przypadku otrzymujemy dwie listy. Pierwsza zawiera parametry połączenia z MQ (patrz. Rysunek 2 и Rysunek 4):

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 15: Opcje połączenia MQ

Drugi to nazwy obiektów docelowych, które odnoszą się do kolejek:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 16: Sparametryzowane nazwy kolejek

Pozostaje tylko skonfigurować JMS Publisher tak, aby ładował wiadomość testową do kolejki wychodzącej:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 17: Konfigurowanie wydawcy JMS

Oraz Abonent JMS do odczytania wiadomości z kolejki przychodzącej:

IBM MQ i JMeter: Pierwszy kontakt
Rysunek 18: Konfiguracja subskrybenta JMS

Jeśli wszystko zostanie wykonane poprawnie, wynik wykonania w listnerze zostanie wypełniony jasnymi i wesołymi zielonymi kolorami.

wniosek

Celowo pominąłem zagadnienia trasowania i administracji, są to raczej intymne i obszerne tematy na osobne publikacje.

Ponadto istnieje znaczna część niuansów w pracy z kolejkami, bazami danych i plikami, o których również chciałbym porozmawiać osobno i szczegółowo.

Oszczędź swój czas. I dziękuję za uwagę.

IBM MQ i JMeter: Pierwszy kontakt

Źródło: www.habr.com