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ń.