Apache JMeter: pierwszy test obciążeniowy strony krok po kroku

Apache JMeter: pierwszy test obciążeniowy strony krok po kroku

Apache JMeter to narzędzie do testowania serwerów, które symuluje zachowanie użytkowników na twoich stronach. Przydaje się, kiedy chcesz sprawdzić serwis przed wydarzeniem mocno podbijającym ruch (na przykład sklep e-commerce w czasie wyprzedaży). To projekt open source rozwijany przez fundację Apache.

Pierwsze uruchomienie JMetera

Daleko mi do eksperta od JMetera i testów obciążeniowych, więc pokażę ci krok po kroku podstawowe użycie Apache JMetera i to, co sam z niego zrozumiałem, jeśli masz pytania albo uwagi, zostaw komentarz. Zacznijmy od kliknięcia prawym przyciskiem na Plan testów -> Wątki (Użytkownicy) -> Grupa wątków, żeby dodać grupę wątków. Na ekranie zobaczysz to:

JMeter-1024x478.jpg

Akcja po błędzie próbnika

To zachowanie, które JMeter przyjmie, jeśli w trakcie testu wystąpi błąd: kontynuujemy, zaczynamy nową iterację, zatrzymujemy wątek albo cały test… Domyślnie zostawiamy „Rozpocznij następną pętlę wątku”, czyli JMeter powtórzy twoje kroki od początku.

Właściwości grupy wątków

Dalej masz właściwości swojej grupy wątków: liczbę wątków (czyli liczbę użytkowników), którzy połączą się z serwisem, oraz czas rozbiegu, podawany w sekundach i rozkładający start użytkowników w czasie, przy 100 użytkownikach i 10 sekundach rozbiegu z moim serwisem połączy się 10 użytkowników na sekundę. Na końcu jest liczba pętli, czyli ile razy każdy wątek (użytkownik) powtórzy scenariusz, jeśli wpiszę 2, jeden wątek przejdzie scenariusz dwa razy.

Konfiguracja harmonogramu

Pewnie już się domyślasz: chodzi o ustawienie opóźnienia albo daty uruchomienia testu. Jak na razie nic skomplikowanego.

Domyślna konfiguracja żądań HTTP

Wybierz Plan testów -> Grupa wątków -> Element konfiguracji -> Domyślne wartości żądania HTTP. To nie jest obowiązkowe, ale pozwala ustawić nazwę domeny raz zamiast wpisywać ją przy każdym żądaniu dodawanym do grupy wątków, w tym przykładzie wpisałem adres swojego bloga.

JMeter2-1024x478.jpg

Zwróć uwagę, że podczas testu JMeter nie pobiera zasobów strony (CSS, JS, obrazów i tak dalej). Żeby je uwzględnić, wejdź w zakładkę Zaawansowane i zaznacz Pobierz wszystkie osadzone zasoby, uważaj tylko, bo wykonanie testu będzie wtedy trwało znacznie dłużej.

JMeter3-1024x478.jpg

Dodanie żądania HTTP

Teraz możesz dodać żądanie HTTP przez Plan testów -> Grupa wątków -> Próbnik -> Żądanie HTTP. Znowu dostajesz mnóstwo pól, ale jeśli poświęcisz chwilę na ich przejrzenie, bardzo szybko je zrozumiesz, w ścieżce żądania podajesz ścieżkę względną, pod warunkiem że poprawnie wskazałeś swój serwis w domyślnych wartościach żądania HTTP.

JMeter4-1024x528.jpg

Stały timer służy tylko do wskazania pauzy, przez którą twój fikcyjny użytkownik będzie czekał (realny odwiedzający zostaje na stronie dłużej niż sekundę).

Automatyczne nagranie scenariusza przez proxy

Scenariusz możesz nagrać i odtwarzać: ustawiasz JMetera tak, żeby zarejestrował zachowanie na stronie, a potem powtarzał je podczas testów. Dzięki temu nie musisz pisać scenariusza ręcznie.

JMeter8.jpg

Żeby to zrobić, ustaw JMetera jako proxy przez Obszar roboczy -> Elementy nietestowe ->Rejestrator skryptu testowego HTTP(S). Nie zapomnij uruchomić rejestratora i wpisać go w ustawieniach proxy w przeglądarce.

JMeter9-300x23.jpg

Następnie, dalej w obszarze roboczym, dodaj Słuchacz -> Zobacz drzewo wyników, żeby wyświetlić dane i móc analizować swoje testy.

Podsumowanie

Apache JMetera poznałem na zajęciach i uznałem, że to bardzo ciekawe narzędzie do sprawdzania aplikacji webowych od strony serwera i wyłapywania żądań, które za mocno go obciążają. Uwaga: żeby testy były bliższe rzeczywistości, trzeba przewidzieć kilka serwerów i zainstalować na nich agenta JMetera, który zdalnie steruje symulowanymi odwiedzającymi, wyniki będą wtedy ciekawsze w analizie i bliższe realiom. JMeter jest bardzo rozbudowany i jeśli będzie okazja, napiszę o nim obszerniejszy artykuł.

···

Damien Flandrin Web developer od 2010 roku, twórca Gekkode i Email Impact. Każdy artykuł jest sprawdzany na prawdziwym projekcie przed publikacją. Kontakt
Newsletter

Nowe testy, poradniki i projekty — e-mailem.

Powtarzalne testy, wersjonowany kod, datowane wyniki. Nigdy spamu.