
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:

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.

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.

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.

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.

Ż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.
![]()
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ł.
···


