Testowanie obciążenia JMeter
JMeter Load Testing to proces testowania przeprowadzany za pomocą narzędzia do testowania obciążenia o nazwie Apache JMeter, które jest aplikacją desktopową typu open source opartą na języku Java. JMeter do testowania obciążenia jest kluczowym narzędziem, które określa, czy testowana aplikacja internetowa może spełnić wysokie wymagania dotyczące obciążenia, czy nie. Pomaga również w analizie całego serwera pod dużym obciążeniem.
Testowanie wydajności JMeter
JMeter Performance Testing to metoda testowania wykonywana przy użyciu Apache JMeter do testowania wydajności aplikacji internetowej. Narzędzie JMeter do testowania wydajności pomaga testować zarówno zasoby statyczne, jak i dynamiczne, pomaga wykryć współbieżnych użytkowników w witrynie i zapewnia różnorodne analizy graficzne do testowania wydajności. Testy wydajności JMeter obejmują test obciążenia i test warunków skrajnych aplikacji internetowej.
Narzędzie testowe Apache JMeter oferuje następujące korzyści w testowaniu wydajności
- JMeter może służyć do testowania wydajności zarówno zasobów statycznych, takich jak JavaScript i HTML, jak i zasobów dynamicznych , takich jak JSP, serwlety i AJAX.
- JMeter może wykryć maksymalną liczbę jednoczesnych użytkowników, których może obsłużyć Twoja witryna
- JMeter zapewnia różnorodne analizy graficzne raportów wydajności.
Testy wydajności JMeter obejmują:
- Testowanie obciążenia : modelowanie oczekiwanego użycia poprzez symulację jednoczesnego dostępu wielu użytkowników do usług sieci Web.
- Testowanie warunków skrajnych: każdy serwer WWW ma maksymalną obciążalność. Gdy obciążenie przekracza limit, serwer WWW zaczyna powoli odpowiadać i generuje błędy. Celem testów warunków skrajnych jest znalezienie maksymalnego obciążenia, jakie może obsłużyć serwer WWW.
Poniższy rysunek pokazuje, jak testowanie obciążenia JMeter symuluje duże obciążenie:
Utwórz plan testów wydajności w narzędziu JMeter
W tym samouczku przeprowadzamy analizę wydajności Google.com dla 1000 użytkowników
Przed przetestowaniem wydajności docelowej aplikacji internetowej powinniśmy określić:
- Normalne obciążenie : średnia liczba użytkowników odwiedzających Twoją witrynę
- Duże obciążenie : maksymalna liczba użytkowników odwiedzających Twoją witrynę
- Jaki jest twój cel w tym teście?
Oto mapa drogowa tego praktycznego przykładu
Krok 1) Dodaj grupę wątków
- Uruchom JMeter
- Wybierz Plan testów w drzewie
- 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:
- Liczba wątków : 100 (liczba użytkowników łączy się z docelową witryną: 100)
- Liczba pętli : 10 (liczba czasu do wykonania testu)
- Okres rozruchu : 100
Liczba wątków i liczba pętli są różne.
Ramp-Up Period informuje JMeter, jak długo ma opóźnić się przed uruchomieniem następnego użytkownika. Na przykład, jeśli mamy 100 użytkowników i 100-sekundowy okres rozruchu, to opóźnienie między uruchomionymi użytkownikami będzie wynosić 1 sekundę (100 sekund / 100 użytkowników)
Krok 2) Dodanie elementów JMeter
Teraz określamy, jakie elementy JMeter są w tym teście. Elementy są
-
Żądanie HTTP Domyślne
Ten element można dodać, klikając prawym przyciskiem myszy grupę wątków i wybierając: Dodaj -> Element konfiguracji -> Domyślne ustawienia żądania HTTP.
W panelu sterowania HTTP Request Defaults wprowadź nazwę testowanej witryny (http://www.google.com)
-
Żądanie HTTP
Kliknij prawym przyciskiem myszy grupę wątków i wybierz: Dodaj -> Sampler -> Żądanie HTTP .
W panelu sterowania żądań HTTP pole Ścieżka wskazuje, które żądanie adresu URL chcesz wysłać do serwera Google.
Na przykład, jeśli wpiszesz „kalendarz” w polu Ścieżka. JMeter utworzy żądanie adresu URL http://www.google.com/calendar do serwera Google
Jeśli pozostawisz pole Ścieżka puste, narzędzie JMeter utworzy żądanie adresu URL http://www.google.com do serwera Google.
W tym teście pole Ścieżka pozostaje puste, aby narzędzie JMeter utworzyło żądanie adresu URL http://www.google.com do serwera Google.
Krok 3) Dodawanie wyniku do wykresu
JMeter może pokazać wynik testu w formacie graficznym.
Kliknij prawym przyciskiem myszy Plan testu, Dodaj -> Odbiornik -> Wykres wyników
Krok 4) Uruchom test i uzyskaj wynik testu
Naciśnij przycisk Uruchom (Ctrl + R) na pasku narzędzi, aby rozpocząć proces testowania oprogramowania. Wynik testu będzie wyświetlany na wykresie w czasie rzeczywistym.
Poniższy rysunek przedstawia wykres planu testów, na którym zasymulowaliśmy 100 użytkowników, którzy uzyskali dostęp do strony www.google.com.
U dołu obrazu znajdują się następujące statystyki, przedstawione kolorami:
- Czarny: całkowita liczba wysłanych bieżących próbek.
- Niebieski: bieżąca średnia wszystkich wysłanych próbek.
- Czerwony: aktualne odchylenie standardowe.
- Zielony: przepływność, która reprezentuje liczbę żądań na minutę obsługiwanych przez serwer
Przeanalizujmy wydajność serwera Google na poniższym rysunku.
Aby przeanalizować wydajność testowanego serwera WWW, należy skupić się na 2 parametrach
- Wydajność
- Odchylenie
Przepustowość jest najważniejszym parametrem. Reprezentuje zdolność serwera do obsługi dużego obciążenia. Im wyższa przepustowość, tym lepsza wydajność serwera.
W tym teście przepustowość serwera Google wynosi 1491,193 / minutę. Oznacza to, że serwer Google może obsłużyć 1 491 193 żądań na minutę. Ta wartość jest dość wysoka, więc możemy stwierdzić, że serwer Google ma dobrą wydajność
Odchylenie jest pokazane na czerwono - wskazuje odchylenie od średniej. Im mniejszy, tym lepiej .
Porównajmy wydajność serwera Google z innymi serwerami internetowymi. To jest wynik testu wydajności strony http://www.yahoo.com/ (możesz wybrać inne strony internetowe)
Przepustowość testowanej witryny http://www.yahoo.com wynosi 867,326 / min. Oznacza to, że ten serwer obsługuje 867.326 żądań na minutę, mniej niż Google.
Odchylenie wynosi 2689, znacznie więcej niż Google (577). Możemy więc określić, że wydajność tej witryny jest mniejsza niż serwer Google.
UWAGA: Powyższe wartości zależą od kilku czynników, takich jak bieżące obciążenie serwera w Google, prędkość Internetu, moc procesora itp. Dlatego jest bardzo mało prawdopodobne, że uzyskasz takie same wyniki, jak powyżej. Więc nie panikuj!
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ę Jmeter
- Otwórz PerformanceTestPlan.jmx w Jmeter
- Kliknij dwukrotnie Grupa wątków -> Wynik wykresu
- Uruchom test