JMeter tips and tricks

JMeter

Loading

JMeter tips and tricks to zestaw różnych podpowiedzi i tipów, które mogą przydać się osobom zajmującym się testowaniem wydajności z wykorzystaniem JMetera. We wpisie ujrzymy kilka elementów obejmujących wcześniejsze wpisy, ale też część o których jeszcze nie pisaliśmy.

Plugin Manager

JMeter posiada możliwość rozszerzenia swoich możliwości, poprzez zainstalowanie Plugin Managera. JMeter Plugins Manager i pobierz plik JAR. Następnie pobrany plik skopiuj do katalogu gdzie masz zainstalowanego JMetera: lib/ext. Następnie ponownie uruchom JMetera. W zakładce OPTIONS będzie znajdować się Plugin Manager skąd będziesz mógł pobrać dodatki przydatne podczas testów wydajnościowych. Więcej informacji we wpisie na temat plugin managera.

Non-gui

To jedna z podstawowych i najważniejszych zasad przeprowadzania testów wydajnościowych z wykorzystaniem JMetera. Tworząc swoje testy wydajnościowe korzystaj z trybu GUI. W ramach tego trybu możesz zweryfikować czy Twój test uruchamia się poprawnie (np. zmniejszając obciążenie itd). Jednakże w przypadku uruchamiania właściwych testów korzystaj z tego trybu. Więcej informacji we wpisie na temat trybu non gui.

Zmiana dostępnej pamięci – JVM

Dla osób korzystających z Windowsa – możesz edytować plik jmeter.bat a następnie wejść do linijki (prawdopodobnie 151), która wygląda tak:

set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

Jeżeli potrzebujesz, zmień wartości pod swoje preferencje. Dane te możesz zweryfikować gdy włączysz JMetera. Dodaj JSR223 PreProcessor a następnie wpisz:

java.lang.management.ManagementFactory.getRuntimeMXBean().getInputArguments().each {
log.info("Effective JVM argument: " + "$it") }

Skrypt groovie

W ramach korzystania z JMetera możesz pisać skrypty w Groovy. Dzięki tym skryptom możesz poszerzyć możliwości korzystania z JMetera.  Przykłady takich skryptów i ich możliwego wykorzystania możesz znaleźć tutaj.

Zmienne

Tworząc nasze testy musimy pamiętać, że bardzo dobrą metodą jest korzystanie ze zmiennych. Tworząc nowy test w JMeterze mamy podstawową zakładkę Test Plan. W tym miejscu możemy zawrzeć nasze zmienne – jak adresy url, inne części adresu (gdy np. będziemy dokonywać zmian poprzez zmianę ścieżek w urlach, czy testowania kilku endpointów czy adresów url). Następnie w ramach testów należy wywołać zmienną poprzez podanie ${url}.

JMeter tips and tricks cz. 1 - zmienne
Jak widać na powyższym screenie, ze zmiennych korzystamy nie tylko w adresach do testu, ale też w name – gdzie później w raporcie otrzymamy informację o tym jak dany endpoint działał.

Asercje

Chcąc testować wydajność działania aplikacji mamy możliwość dodania asercji by zweryfikować automatycznie różne elementy działania naszego systemu, by w późniejszym okresie otrzymać informację w raportach np. w zakresie przekroczonego czasu odpowiedzi. Jedną z podstawowych asercji, jest potwierdzenie odpowiedniego statusu odpowiedzi aplikacji. Dobrą jednak praktyką jest też by nie nadużywać ilościowo asersji z których korzystamy w ramach testu.

Listener

W momencie tworzenia testów chcąc zweryfikować pewne informacje jakie zwraca nam test, możemy korzystać z Listenerów. Przykładami dobrymi mogą być – View Results Tree, Aggregate Report, Assertion Results. Korzystając z trybu non-gui wyłączaj ten element, gdyż wszystkie informacje otrzymasz w ramach raportu w csv.

Raporty w csv

Korzystając z wersji non-gui w łatwy i przystępny sposób możesz otrzymać raporty w formie HTMLa. Chcąc skorzystać z takiej opcji skorzystaj z wzorca polecenia, podstawiając swoją lokalizację czy nazwy testu, oraz rezultatu czy logów. Pierwszy przykład dla Windowsa, drugi zaś dla Linuxa. Obowiązkiem tylko jest wejście z consoli do katalogu bin w Jmeterze.

jmeter -n -t test.jmx -l test -e -o C:\apache-jmeter-5.4.1\bin\wyniki.csv
sh jmeter.sh -n -t test.jmx -l test -e -o /apache-jmeter-5.4.1/bin/wyniki.csv

JMeter Throughput Controller

Przeprowadzając testy wydajnościowe testerzy często stają przed zadaniem zweryfikowania w jaki sposób aplikacja czy np. endpointy będą reagować na określony ruch. Problemem jest, że z doświadczenia zauważam, iż testowanie wydajności skupia się na jednym adresie url czy jednej, określonej końcówce. Z perspektywy produkcyjnego korzystanie warto przy takich testach zweryfikować rozłożenie ruchu. W przypadku gdy aplikacja korzysta z zasobów backendowych do prezentowania treści, warto obciążyć różne miejsca w serwisie by zweryfikować jej działanie.

Skróty klawiszowe w trybie GUI

Gdy tworzysz swoje testy w trybie GUI JMetera, możesz skorzystać z kilku ciekawych skrótów klawiszowych

Ctrl + 0  Thread Group
Ctrl + 1  HTTP Request
Ctrl + 2  Regular Expression Extractor
Ctrl + 3  Response Assertion
Ctrl + 4  Constant Timer
Ctrl + 5  Test Action
Ctrl + 6  JSR223 PostProcessor
Ctrl + 7  JSR223 PreProcessor
Ctrl + 8  Debug Sampler
Ctrl + 9  View Results Tree

Możesz zmienić te skróty w pliku jmeter.properties w linijce:

# Hotkeys to add JMeter components, will add elements when you press Ctrl+0 .. Ctrl+9

Podsumowanie

JMeter tips and tricks to lista kilku wskazówek z których możecie skorzystać w trakcie tworzenia testów wydajnościowych z wykorzystaniem JMetera. Dzięki temu artykułowi będziecie mogli sobie ułatwić tworzenie planu testów. Więcej o JMeterze stale piszemy w dziale dedykowanym dla tego narzędzia.