Co to są timery?
Domyślnie JMeter wysyła żądanie bez przerwy między każdym żądaniem. W takim przypadku JMeter może przytłoczyć serwer testowy, wykonując zbyt wiele żądań w krótkim czasie.
Wyobraź sobie, że w ciągu kilku sekund wysyłasz tysiące żądań do testowanego serwera WWW. Oto co się dzieje!
Zegary pozwalają narzędziu JMeter na opóźnienie między każdym żądaniem wysyłanym przez wątek. Zegar może rozwiązać problem przeciążenia serwera .
Ponadto w prawdziwym życiu użytkownicy nie wchodzą na stronę internetową w tym samym czasie, ale w różnych odstępach czasu. Dlatego Timer pomoże naśladować zachowanie w czasie rzeczywistym.
W tym samouczku dowiesz się
- Stały zegar
- Gaussian Random Timer
- Jednolity losowy zegar
- BeanShell Timer
- BSF Timer
- JSR223 Timer
- Jak korzystać ze stałego timera
Poniżej przedstawiono kilka typowych typów liczników czasu w narzędziu JMeter
Stały zegar:
Stały zegar opóźnia każde żądanie użytkownika na ten sam czas.
Gaussian Random Timer:
Losowy zegar Gaussa opóźnia każde żądanie użytkownika o losowy czas.
Parametry:
Atrybut | Opis |
---|---|
Nazwa | Opisowa nazwa tego licznika czasu, która jest wyświetlana w drzewie |
Odchylenia (milisekundy) | Parametr Gaussa Distribution Function |
Przesunięcie stałego opóźnienia (milisekundy) | Dodatkowa wartość w milisekundach |
Tak więc całkowite opóźnienie jest opisane na poniższym rysunku:
Jednolity losowy licznik czasu:
Jednolity losowy zegar opóźnia każde żądanie użytkownika o losowy czas.
Parametry:
Atrybut |
Opis |
---|---|
Nazwa |
Opisowa nazwa tego licznika czasu, która jest wyświetlana w drzewie |
Maksymalne opóźnienie losowe |
Maksymalna losowa liczba milisekund opóźnienia. |
Przesunięcie stałego opóźnienia (milisekundy) |
Dodatkowa wartość w milisekundach |
Całkowite opóźnienie jest sumą wartości losowej i wartości przesunięcia.
BeanShell Timer
Timer BeanShell może służyć do generowania czasu opóźnienia między każdym żądaniem użytkownika.
BSF Timer
Zegar BSF może być używany do generowania opóźnienia między każdym żądaniem użytkownika przy użyciu języka skryptowego BSF.
JSR223 Timer
Timer JSR223 może służyć do generowania opóźnienia między każdym żądaniem użytkownika przy użyciu języka skryptowego JSR223
Jak korzystać ze stałego timera
W tym przykładzie użyjesz Constant Timer do ustawienia stałego opóźnienia między żądaniami użytkowników wysyłanymi do google.com.
Zacznijmy od prostego skryptu testowego
- JMeter tworzy 100 razy jedno żądanie użytkownika do http://www.google.com
- Opóźnienie między każdym żądaniem użytkownika wynosi 5000 ms
Oto mapa drogowa dla tego praktycznego przykładu:
Warunek wstępny:
Możemy ponownie wykorzystać w kroku 1 i 2 w tutorialu JMeter do testowania wydajności.
Krok 1) Dodaj grupę wątków
Kliknij prawym przyciskiem myszy Plan testów i dodaj nową grupę wątków: Dodaj -> Wątki (Użytkownicy) -> Grupa wątków
W panelu sterowania Grupa wątków wprowadź Właściwości wątku w następujący sposób
To ustawienie umożliwia JMeter utworzenie jednego żądania użytkownika do http://www.google.com 100 razy
Krok 2) Dodaj elementy JMeter
- Dodaj domyślne żądanie HTTP
- Dodaj żądanie HTTP
Krok 3) Dodaj stały zegar
Kliknij prawym przyciskiem myszy Grupa wątków -> Licznik czasu -> Stały licznik czasu
Konfigurowanie opóźnienia wątku na 5000 milisekund
Krok 4) Dodaj wyniki widoku w tabeli
Wyświetl wyniki w tabeli wyświetla wynik testu w formie tabeli.
Kliknij prawym przyciskiem myszy Dodaj -> Listener -> Wyświetl wynik w tabeli
Wyświetl wyniki w tabeli, jak na poniższym rysunku
Krok 5) Uruchom test
Gdy będziesz gotowy do uruchomienia testu, kliknij przycisk Uruchom na pasku menu lub naciśnij klawisz skrótu Ctrl + R
To jest wynik tego testu
Na przykład na powyższym rysunku przeanalizujmy Próbkę 2
- Godzina rozpoczęcia to 22:05: 01.866
- Czas próbkowania dla próbki 2 wynosi 172 ms
- Stały zegar : 5000 ms (zgodnie z konfiguracją)
- Czas zakończenia tej próbki to = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Więc próbka 3 powinna rozpocząć się w czasie 22: 05: 07.039 (jak pokazano na powyższym rysunku)
Opóźnienia każdej próbki wynosi 5000 ms
Jeśli zmienisz opcję Constant Timer na zero , zobaczysz, że wynik się zmienił
Przeanalizujmy próbkę 1
- Godzina rozpoczęcia to 22: 17: 39.141
- Czas próbkowania dla próbki 2 wynosi 370 ms
- Stały zegar : 0 ms (zgodnie z konfiguracją)
- Czas zakończenia tej próbki to = 22: 17: 39,141+ 370 + 0 = 22: 17: 39,511
Więc próbka 2 powinna rozpocząć się w czasie 22: 17: 39.512 (pokazane na powyższym rysunku)
Rozwiązywanie problemów:
Jeśli napotkasz problem podczas wykonywania powyższego scenariusza… wykonaj następujące czynności
- Sprawdź, czy łączysz się z Internetem przez proxy. Jeśli tak, usuń proxy.
- Otwórz nową instancję narzędzia JMeter
- Otwórz TimerTestPlan.jmx w Jmeter
- Kliknij dwukrotnie grupę wątków -> Wyświetl wynik w tabeli
- Uruchom test