IT Narzędzie do testów wydajnościowych

JMeter

Definicja #

Apache JMeter to open-source'owe narzędzie do testowania wydajności, obciążenia i stresu aplikacji oraz usług. Oryginalnie zaprojektowane do testowania aplikacji webowych, dziś obsługuje wiele protokołów i rodzajów usług.

Obsługiwane protokoły i typy testów:

  • HTTP/HTTPS — testy aplikacji webowych i REST API (najczęstsze zastosowanie)
  • SOAP/XML-RPC — testowanie usług webowych
  • FTP, LDAP, JDBC — bazy danych, serwery plików, katalogi
  • JMS — kolejki komunikatów
  • TCP — protokoły niskiego poziomu

Kluczowe koncepcje JMeter:

  • Test Plan — główny kontener konfiguracji testu
  • Thread Group — definiuje liczbę wirtualnych użytkowników (threads), czas ramp-up i liczbę iteracji
  • Samplers — elementy wysyłające żądania: HTTP Request Sampler, JDBC Sampler, JMS Publisher
  • Listeners — zbierają i prezentują wyniki: Summary Report, Aggregate Report, Graph Results, Response Time Graph
  • Assertions — weryfikacja poprawności odpowiedzi (Response Assertion, JSON Assertion, Duration Assertion)
  • Config Elements — HTTP Header Manager, Cookie Manager, CSV Data Set Config (parametryzacja danych)
  • Timers — Think Time, Gaussian Timer — symulacja rzeczywistego zachowania użytkownika

Typy testów wydajnościowych realizowanych w JMeter:

  • Load testing — weryfikacja zachowania przy oczekiwanym obciążeniu
  • Stress testing — znalezienie punktu awarii (breaking point)
  • Spike testing — nagłe skoki obciążenia
  • Endurance testing — długotrwałe testy stabilności (memory leaks)

Zastosowania #

JMeter stosuje się do:

  • Load testowania aplikacji webowych przed wdrożeniem — weryfikacja czy system wytrzyma oczekiwaną liczbę użytkowników
  • Testowania REST API pod obciążeniem — sprawdzenie czasu odpowiedzi i stabilności endpointów przy wielu równoczesnych żądaniach
  • Identyfikacji wąskich gardeł systemu — baza danych, serwer aplikacji, sieć — przez analizę metryk pod obciążeniem
  • Testowania wydajności baz danych przez JDBC Sampler — direct query testing bez warstwy aplikacji
  • Integracji z CI/CD pipeline — uruchamianie testów wydajnościowych automatycznie po deploymencie (JMeter CLI + raportowanie)

Ścieżka nauki #

JMeter ma graficzny interfejs GUI i tryb CLI. Zacznij od GUI do tworzenia testów, używaj CLI na CI/CD.

Zacznij od:

  • Pobranie i uruchomienie JMeter (Java wymagana): jmeter.bat (Windows) lub jmeter.sh (Linux/Mac)
  • Utwórz pierwszy Test Plan: Thread Group (5 użytkowników, ramp-up 10s) → HTTP Request Sampler → View Results Tree Listener
  • Nagraj scenariusz testowy przez HTTP(S) Test Script Recorder — proxy przechwytujące ruch przeglądarki
  • Uruchom test i przeanalizuj wyniki: throughput (req/s), Average Response Time, Error Rate w Summary Report

Następnie poznaj:

  • Parametryzacja — CSV Data Set Config: różne dane logowania dla każdego wirtualnego użytkownika
  • Korelacja — wyciąganie dynamicznych tokenów (CSRF, session ID) z odpowiedzi przez Regular Expression Extractor
  • Asercje — Duration Assertion, Response Code Assertion, JSON Assertion
  • Tryb CLI: jmeter -n -t test.jmx -l results.jtl -e -o report/ — bezgłowy tryb i generowanie raportu HTML
  • Alternatywy: k6 (skrypty JS, cloud-native, DevOps-friendly), Gatling (Scala DSL)

FAQ #

Czym różni się JMeter od k6?
JMeter to dojrzałe narzędzie GUI z szeroką gamą protokołów i pluginów — popularne w QA. k6 to nowoczesne narzędzie CLI z testami w JavaScript, łatwe do integracji z CI/CD i cloud (Grafana k6 Cloud). JMeter wymaga Javy, k6 jest lekki. Dla nowych projektów DevOps k6 jest coraz częściej wybierany.
Ile wirtualnych użytkowników może symulować JMeter?
JMeter może symulować tysiące wirtualnych użytkowników (threads) na jednej maszynie, ale liczba zależy od zasobów RAM i CPU. W praktyce 100-500 threads na maszynę to bezpieczny zakres dla stabilnych testów. Dla dużych testów używa się JMeter w trybie rozproszonym (Distributed Testing) — wiele maszyn slave pod kontrolą master.
Czy JMeter jest darmowy?
Tak — Apache JMeter jest w pełni open-source i darmowy (licencja Apache 2.0). Nie ma limitów użytkowników ani żądań. Płatne są jedynie usługi chmurowe do uruchamiania testów rozproszonych (np. BlazeMeter, który jest kompatybilny z JMeter).
Ile zarabia Performance Tester?
QA Engineer specjalizujący się w testach wydajnościowych zarabia w Polsce od 10 000 do 20 000 zł brutto. Znajomość JMeter lub k6 wraz z analizą metryk (Grafana, Prometheus) i rozumieniem architektury systemu to poszukiwany zestaw kompetencji.
Ostatnia aktualizacja:

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.