Jmeter Timers: Constant, Gaussian Random, Uniform (przykład)

Spisie treści:

Anonim

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

  1. JMeter tworzy 100 razy jedno żądanie użytkownika do http://www.google.com
  2. 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

  1. Sprawdź, czy łączysz się z Internetem przez proxy. Jeśli tak, usuń proxy.
  2. Otwórz nową instancję narzędzia JMeter
  3. Otwórz TimerTestPlan.jmx w Jmeter
  4. Kliknij dwukrotnie grupę wątków -> Wyświetl wynik w tabeli
  5. Uruchom test