jMETER
Piotr Woszczyk
Gromar @ 2013
Jmeter?
-
Aplikacja napisana w Javie przez "The Apache Software Foundation".
-
Głównym zastosowaniem jest generowanie obciążeń innych usług i badanie czasu ich odpowiedzi.
-
Umożliwia generowanie obciążeń dla rożnych protokołów (np. HTTP, SMTP, FTP)
- Umożliwia symulowanie sesji, cache oraz innych cech istniejących przeglądarek.
-
Zawiera narzędzia do opracowywania wyników.
- Jest częściowo spolszczony.
INSTALACJA
-
Aktualna wersja 2.10 dostępna na oficjalnej stronie: jmeter.apache.org
-
Wymagana jest JAVA 6+, jeśli to możliwe w wersji 64bit.
Pierwsze KROKI
Główne drzewo testów znajduje się po lewej stronie o umieszczone w nich są wszystkie elementy.

Pierwsze kroki
W celu rozpoczęcia dodajmy element "grupa wątków", w którym zawrzemy nasz test.

PIERWSZE KROKI
-
W właściwościach grupy należy podać ilość wątków (kopi sesji), czas w jakim zostaną uruchomione oraz ilość powtórzeń każdego z wątków.
- Istotnym parametrem tego elementu jest również jego zachowanie w momencie wystąpienia błędu.
- Przy makrach rozciągniętych w czasie przydatne może być wstrzymanie utworzenia wątku w pamięci maszyny testującej do ostatniego możliwego momentu. Pozwala zaoszczędzić to zasoby maszyny testującej.
Przygotowanie
-
W celu rozpoczęcia obciążania interesującej nas usługi musimy mieć przygotowany plan testów (tzn. makro).
-
Mamy do wyboru nagranie makra poprzez zbudowany serwer PROXY, ręczne dodawanie próbek, a nawet poprzez edycję pliku .jmx, który jest dedykowanym .xml.
- Najwygodniejszym sposobem jest nagrywanie poprzez serwer PROXY i ewentualna późniejsza modyfikacja.
DODANIE PROXY
W celu nagrania makra do brudnopisu dodajemy element "non-test" jakim jest serwer PROXY.

KONFIGURACJA PROXY
- Serwerowi proxy należy wskazać na jakim porcie ma prowadzić nasłuch oraz do jakiego elementu makra ma zapisywać zarejestrowane zapytania.
- Dodanie serwera nie uruchamia go, konieczne jest uruchomienie w jego opcjach.
- W celu wygenerowanie ruchu konieczne jest skonfigurowanie przeglądarki aby przepuszczała ruch przez w. w. serwer.
WYNIK DZIAŁANIA PROXY
W efekcie drzewo powinno wypełnić się próbkami.

konfiguracja
-
Bez elementów konfiguracyjnych makro wykona cykl zapytań bez jakichkolwiek odstępów oraz kontekstu.
-
W celu symulowania rzeczywistego działania przeglądarki istotne jest dodanie elementów "cache manager" i "cookie manager".
-
Istotnym jest również zdefiniowanie interwałów czasowych pomiędzy zapytaniami i grupami zapytań.
- W wielu przypadkach dodanie tych elementów możne całkowicie zmieniać wynik testów i odpowiednie ich umiejscowienie oraz dobranie ich parametrów jest bardzo istotne.
TIMER
-
Wstawiając timer w wybranym poziomie drzewa spowodujemy jego wykonanie po każdym elemencie tego poziomu. Nie ma konieczności dublowania timera.
-
Dostępne są timery o rożnych rozkładach i zastosowanie odpowiedniego leży w gestii tworzącego makro.
TIMER, ZASTOSOWANIE

ZMIENNE
-
Istnieje możliwość definiowania zmiennych.
-
Zasięg zmiennych jest globalny dla całego testu.
-
Głównym zastosowaniem jest przenoszenie danych pomiędzy elementami (przydatne są do zasilania formularzy oraz przenoszenia tokenów pomiędzy kolejnymi zapytaniami)
-
Źródłem danych zmiennej moze być np. plik CSV.
-
Odwołanie do zmiennych odbywa się poprzez ${}, np. ${USERNAME}.
ZMIENNE, ZASTOSOWANIE

ZMIENNE, ZASTOSOWANIE

URUCHOMIENIE
- Uruchomienie możliwe jest w trybie GUI i NON-GUI.
- Tryb non-gui sugerowany jest dla rozbudowanych makr oraz dużych ilości wątków.
- Jako duży rząd wielkości można traktować makro z ponad 1000 zapytań lub mające ponad 500 sesji.
NON-GUI
Uruchomienie.
jmeter.sh -n -t plik.jmx Uruchomienie ze zbieraniem wyników.
jmeter.sh -n -t plik.jmx -l plik.jtl ZBIERANIE WYNIKÓW
-
W trybie GUI w celu obserwacji czasów odpowiedzi serwera będziemy musieli zapewnić elementy zbierające.
-
Istnieje wiele lisener'ów. Wybór odpowiedniego zależy od potrzeb testującego.
-
Nalezy pamiętać, ze im więcej danych będziemy zbierać, tym mniej zasobów pozostanie na uruchomienie wątków. W związku z tym nie zbierajmy danych niepotrzebnych.
ANALIZA WYNIKÓW
-
Większość wcześniej omówionych lisener'ów posiada opcję analizowania plików jtl zamiast bieżących próbek.
- Niektóre umożliwiają eksporty do formatów przyjaznych użytkownikowi, np. excel.
OPRACOWANIE WYNIKÓw
-
Głównym parametrem mówiącym o wydajności testowanej usługi jest średni czas odpowiedzi i w większości przypadków pozwoli oszacować moment przeciążenia.
-
Istotne może tez być odchylenie standardowe, które powie nam o stabilności działania usługi.
-
Przy dużych makrach testy pozwalają znaleźć odwołania do elementów nieistniejących, dlatego warto również zwracać uwagę na odsetek błędów poszczególnych zapytań.
Dziękuję za Uwagę

jMeter
By Piotr Woszczyk
jMeter
- 39