JMeter – podstawy pisania testów wydajnościowych

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.

Opcje Thread Group

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.

Prosty przykład użycia protokołu HTTP wykonujący żądanie GET

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.

Widok listenera View Results Tree po otwarciu

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.

Wykorzystany request HTTP
Ustawienia CSV Data Set Config
Requesty przesłane na serwer

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.