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.