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}.
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.