JMeter tryb non GUI - consola

JMeter tryb non GUI

JMeter

Loading

JMeter tryb non GUI czyli to co każdy tester testujący wydajność powinien wiedzieć. Jak uruchamiać testy wydajnościowe by wyniki były jak najbardziej rzeczywiste. Wskażemy też przykłady poleceń z consoli z których możemy skorzystać. 

Dlaczego uruchamiać testy z konsoli. 

Tryb GUI jest idealny do sporządzenia swojego testu. Poprzez przyjazną aplikację okienkową możemy przygotować test, który chcemy przeprowadzić. W ramach uruchamiania testu z konsoli, możemy ewentualnie zweryfikować, czy sporządzony test działa poprawnie – czy dobrze wpisaliśmy dane itd. Dobrą praktyką JMetera jest uruchamianie testów z consoli. Dzięki takiemu działaniu ograniczamy zużycie pamięci, umożliwiamy uruchomienie większej ilości wątków, czy też nasze rezultaty będą bardziej dokładne – mniejsze obciążenie maszyny etc. Najlepsze praktyki przy korzystaniu z JMetera znajdują się na oficjalnej stronie

Podstawowe opcje

Jeżeli chcesz uruchomić JMetera w trybie non gui w consoli musisz odnaleźć lokalizację aplikacji a następnie wejść do katalogu bin. W tym katalogu znajdują się pliki do włączenia apki z rozszerzeniami *.bat (dla Windowsa) lub *.sh (Linux lub iOS).

jmeter -n -t test.jmx
./jmeter.sh -n -t test.jmx

Co oznaczają poszczególne litery w komendzie:

-n Określa, że JMeter ma działać w trybie innym niż GUI.
-t [nazwa pliku JMX, który zawiera plan testowy].
-l [nazwa pliku JTL, do którego należy zapisać przykładowe wyniki].
-j [nazwa pliku dziennika uruchamiania JMeter].
-r Uruchom test na serwerach określonych przez właściwość JMeter „remote_hosts”.
-R [lista zdalnych serwerów] Uruchom test na określonych zdalnych serwerach.
-sol [ścieżka do pliku CSV] generuje tylko pulpit nawigacyjny raportu
-mi wygeneruj pulpit raportów po teście.
-o folder wyjściowy, w którym ma zostać wygenerowany raport po teście. Folder nie może istnieć ani być pusty.

Dodatkowe. 

Skrypt pozwala także określić opcjonalne informacje zapory / serwera proxy:

-H [nazwa hosta lub adres IP serwera proxy].
-P [port serwera proxy].
-N [nieproxy hosty] (np. * .apache.org | localhost).
-u [nazwa użytkownika do uwierzytelnienia proxy – jeśli jest wymagana].
-za [hasło do uwierzytelnienia proxy – jeśli wymagane].

Przykładowe komendy:

Poniżej kilka prostych komend do uruchamiania testów. Polecenia te są dla systemów Windows. Dla Linuxa czy MacOS konieczne jest uruchomienie poprzez ./jmeter.sh. 

a) jmeter -n -t test.jmx (odpalenie standardowego testu).
b) jmeter -n -t test.jmx -R 10.0.0.1 (odpalenie testu na zewnętrznej maszynie o podanym nr IP).
c) jmeter -n -t test.jmx -l test -e -o C:\apache-jmeter-5.1.1\bin\wyniki.csv (odpalenie testu z wygenerowanym raportem).

Pełna lista poleceń.

–? print command line options and exit
-h, –help – print usage information and exit
-v, –version – print the version information and exit
-p, –propfile – the jmeter property file to use
-q, –addprop – additional JMeter property file(s)
-t, –testfile – the jmeter test(.jmx) file to run
-l, –logfile – the file to log samples to
-j, –jmeterlogfile – jmeter run log file (jmeter.log)
-n, –nongui – run JMeter in nongui mode
-s, –server – run the JMeter server
-H, –proxyHost – Set a proxy server for JMeter to use
-P, –proxyPort – Set proxy server port for JMeter to use
-N, –nonProxyHosts – Set nonproxy host list (e.g. *.apache.org|localhost)
-u, –username – Set username for proxy server that JMeter is to use
-a, –password – Set password for proxy server that JMeter is to use
-J, –jmeterproperty = – Define additional JMeter properties
-G, –globalproperty = – Define Global properties (sent to servers)
e.g. -Gport=123 – or -Gglobal.properties
-D, –systemproperty = – Define additional system properties
-S, –systemPropertyFile – additional system property file(s)
-L, –loglevel = – [category=]level e.g. jorphan=INFO or jmeter.util=DEBUG
-r, –runremote – Start remote servers (as defined in remote_hosts)
-R, –remotestart – Start these remote servers (overrides remote_hosts)
-d, –homedir – the jmeter home directory to use
-X, –remoteexit – Exit the remote servers at end of test (non-GUI)
-g, –reportonly – generate report dashboard only, from a test results file
-e, –reportatendofloadtests – generate report dashboard after load test
-o, –reportoutputfolder – output folder for report dashboard

Inne:

Wszystkie polecania w Thread Group możemy parametryzować i później wartości ustawiać wprost z konsoli. Jest to opcja jeżeli nie chcemy ciągle włączać JMetera by dokonywać zmian w teście.

Elementy zmienne:

  • Number of Threads (users)
  • Ramp-Up Period
  • Duration

Przykłady:

  • ${__P(THREADS,180)}
  • ${__P(RAMP_UP,180)}
  • ${__P(DURATION,180)}

Podsumowanie

JMeter tryb non GUI  to obowiązkowa lektura dla każdego testera  korzystającego z JMetera. Jak wspominaliśmy uruchamianie testów w tym trybie jest kwestią bardziej słuszną niż w trybie GUI. Jest to trzeci artykuł z cyklu rozszerzenia wiedzy o tym narzędziu. Szerzej o JMeterze będziemy pisać w dziale dedykowanym dla tego narzędzia