JMeter jest narzędziem firmy Apache służące do analizy i mierzenia wydajności aplikacji. Obecnie jest to najbardziej znane narzędzie open soruce do przeprowadzania testów wydajnościowych. W związku z tym ważne jest, aby poznać je chociaż częściowo. W niniejszym artykule będziemy pomijać polskie tłumaczenia w celu lepszego zrozumienia narzędzia.
Thread Group
Zacznijmy od najbardziej ogólnych części. Jedną z nich stanowi Thread Group
. Jego funkcją jest grupowanie akcji użytkownika w aplikacji (przesyłanie żądań, pobieranie plików itd.). Ciekawą możliwością Thread Group
jest ustawienie dla niej liczby threadów, czyli użytkowników. Oznacza to, że możemy dzięki niemu symulować daną ilość użytkowników na raz w trakcie jednego testu wydajnościowego.

Samplers
JMeter wspiera szereg protokołów. Należy do nich min.: HTTP, FTP, JDBC oraz LDAP. Każde żądanie, otwarcie połączenia itd. reprezentuje jeden sampler. Jednak nie ograniczają się one jedynie do tego. JMeter posiada na przykład Debug Sampler
, który może być użyty do rozwiązywania problemów ze zmiennymi w skrypcie.

Listeners
Kolejnym elementem na który należy zwrócić uwagę są listeners
. Służą one do wyświetlania danych testu w danym formacie. Warto dodać, że najczęściej będziemy używać View Results Tree
w celu zidentyfikowania szczegółowych informacji przesyłanych requestów.

Configuration Elements
Configuration Elements
pozwalają na ustawianie wartości domyślnych i zmiennych do późniejszego wykorzystania przez samplers
. Aby poznać bliżej temat, przyjrzyjmy się kilku przykładom z bliska.
CSV Data Set Config
Wyobraźmy sobie sytuację, w której w naszym teście zostanie wykorzystanych 5 użytkowników. Wiemy, że ich ilość możemy ustalić w Thread Group
. Co w przypadku kiedy każdy z użytkowników ma inne dane logowania? Z pomocą przychodzi nam CSV Data Set Config
. Służy on do parametryzacji testów na podstawie danych z pliku. Aby lepiej to zobrazować, przyjrzyjmy się przykładowi.



HTTP Cookie Manager
Kolejnym elementem konfiguracyjnym jest HTTP Cookie Manager. Przeglądarka działa w taki sposób, że przechowuje automatycznie niektóre dane (takie jak ciasteczka) w pamięci. Aby zasymulować takie samo działanie w naszych testach, użyjemy HTTP Cookie Managera. Inną jego ciekawą możliwością jest definiowanie własnych ciasteczek oraz Cookie policy.
HTTP Request Default
Wyobraźmy sobie sytuację w której nasz test wykonuje około 100 żądań HTTP wewnątrz. W każdym z nich musielibyśmy ustawiać adres serwera oraz jego port. Aby oszczędzić czas, możemy zdefiniować te dane w HTTP Request Default
, przez co staną się one wartościami domyślnymi dla naszych żądań.
Podsumowanie
W niniejszym artykule omówiliśmy podstawy do korzystania z narzędzia JMeter. W kolejnych artykułach zajmiemy się przygotowywaniem pierwszych testów, poznamy różnice między load, stress i soak testami oraz przyjrzymy się jak wykorzystać JMeter do pracy z websocketami.
Źródła
https://haquemousume.medium.com/multiple-user-login-using-jmeter-f1529247bbf2
https://www.cookiebot.com/en/cookie-policy/
https://jmeter.apache.org/usermanual/index.html