2. 2
Master – maszyna kontrolująca testy
Slave – maszyna, na której został uruchomiony process jmeter-server. Przyjmuje
instrukcje kontrolne od mastera i generuje obciążenie
3. + Wyniki testów zapisane na masterze
+ Zarządzanie wieloma instancjami JMeter-a z poziomu Mastera
+ Nie ma konieczności kopiowania planu testów na Slaves
- Niedystrybuowanie zewnętrznych zasobów (tj. pliki z danymi testowymi, pliki
załączane w requestach Multipart Form Data itp.)
4. Ten sam plan testów jest uruchamiany na każdej z maszyn. Liczba
wątków podana w Thredgrupach nie dzieli się na liczbę serwerów. To
oznacza, że jeśli w planie testów zostanie ustawione 100 wątków (VU) i
mamy 3 maszyny typu slave to finalnie serwer, który testujemy zostanie
obciążony 300 wirtualnymi użytkownikami.
W celu wyeliminowania wpływu sieci internet/vpn zaleca się
umieszczenie poszczególnych load generatorów w tej samej
infrastrukturze sieciowej, w której umieszczono serwery aplikacyjne.
Tryb Master – Slave konsumuje zasoby po stronie Mastera tym większe
im więcej węzłów slave zostało dołączonych. Należy obserwować
obciążenie Mastera oraz dostosować ilość zbieranych danych do
rzeczywistych potrzeb.
5. • Poznaj wymagania klienta, skonfrontuj je z rzeczywistością
• Zaplanuj liczbę węzłów
• Pojedynczy węzeł JMetera wykorzystuje 2-3 GHz CPU i może obsłużyć
od 150 – 600 wątków w zależności od typu testu
• Upewnij się, że ruch sieciowy pomiędzy węzłami JMetera jest
udrożniony (reguły na firewallach i urządzeniach sieciowych)
• Upewnij się, że z każdego węzła testującego (Slave) istnieje
połączenie z serwerem testowym
• Upewnij się, że wersje oprogramowania na każdym serwerze
są identyczne (JVM, JMeter, JMeter-Plugins)
6. • Domyślna ilość przydzielonej pamięci dla JVM z reguły jest niewystarczająca
• zwiększ rozmiar pamięci HEAP do ok 80% całkowitej pamięci fizycznej. Możesz to zrobić
poprzez modyfikację poniższej lini w skrypcie startowym (jmeter/jmeter.bat):
• Master nie rozsyła plików z danymi testowymi dlatego należy je przegrać do
właściwego katalogu na maszynach zdalnych
• W pliku user.properties należy umieścić dodatkową konfigurację (np. konfiguracja
ssl-a, sposobu przesyłania wyników, konfigurację danych, która jest przesyłana do
mastera
7. • Aby uruchomić nody Jmeter-a, uruchom serwer na wszystkich
maszynach przy użyciu właściwego skryptu startowego:
• JMETER_HOME/bin/jmeter-server (unix)
• JMETER_HOME/bin/jmeter-server.bat (windows) script.
8. • Domyślnie, silnik Jmetera wykorzystuje do nasłuchu port 1099.
Jeśli ten port jest zajęty lub z innego powodu nie ma możliwości
jego zastosowania możemy skorzystać z property server_port.
Jeśli w pliku user.properties podamy inną wartość niż domyślna
wtedy dany serwer będzie nasłuchiwał na tym porcie.
9. • Domyślnie, silnik Jmetera wykorzystuje do komunikacji losowy
port RMI. Powoduje to problem z właściwym skonfigurowaniem
firewalli (wymagane otwarcie całego ruchu). Aby ten problem
rozwiązać można skorzystać z property server.rmi.localport.
Jeśli w pliku user.properties podamy tą wartość różną od zera
to właśnie ten port zostanie wykorzystany.
10. • plik user.properties
• powinien zawierać identyczną konfigurację z slave-ami
• dodatkowo powinien zawierać property remote_hosts zawierające listę
adresów ip lub nazw domenowych serwerów slave. Jeśli serwer nie nasłuchuje
na domyślnym porcie (1099) należy podać również ten port.
11.
12. Simple Data Writer – umożliwia zapis danych do pliku w celu późniejszej analizy
13. • jmeter -n -t script.jmx -l jmeter.jtl -r
• uruchamia plan testów script.jmx na wszystkich maszynach zdefiniowanych w
pliku user.properties. Wyniki sampli zapisywane są w jmeter.jtl (nie ma
potrzeby uzywania Simple Data Writer
• jmeter -n -t script.jmx -l jmeter.jtl –R slave1,slave2…
• uruchamia plan testów script.jmx na maszynach wskazanych w parametrze R
• Dodatkowe flagi:
• -Gproperty=value – przekazuje property do wszystkich serwerów
• -X – Wyłącza zdalnego noda po zakończniu testów
14. • ${__machineName()}, ${__machineIP()}, ${__P(jmeterId,master)}
– wyrażenia, które mogą być wykorzystane do wczytania
właściwych plików
• HTTP Simple Table Server