Co to jest testowanie obciążenia? (Przykłady)

Testowanie obciążenia

Co to jest testowanie obciążenia?

Testowanie obciążenia jest niefunkcjonalnym procesem testowania oprogramowania, w którym wydajność aplikacji oprogramowania jest testowana przy określonym oczekiwanym obciążeniu. Określa, jak aplikacja oprogramowania zachowuje się, gdy jest dostępna dla wielu użytkowników jednocześnie. Celem testowania obciążenia jest poprawa wąskich gardeł wydajnościowych oraz zapewnienie stabilności i płynnego działania aplikacji oprogramowania przed wdrożeniem.

To badanie zwykle identyfikuje –

  • Maksymalna pojemność operacyjna aplikacji
  • Określ, czy aktualna infrastruktura jest wystarczająca do uruchomienia aplikacji
  • Trwałość aplikacji w odniesieniu do szczytowego obciążenia użytkownika
  • Liczba jednoczesnych użytkowników, których aplikacja może obsłużyć, oraz skalowalność umożliwiająca dostęp większej liczbie użytkowników.

Jest to rodzaj testów niefunkcjonalnych. W inżynierii oprogramowania testowanie obciążenia jest powszechnie stosowane w przypadku aplikacji typu klient/serwer oraz aplikacji internetowych – zarówno intranetowych, jak i internetowych.

Potrzeba testów obciążeniowych

Niektóre niezwykle popularne witryny doświadczyły poważnych przestojów ze względu na ogromny ruch. Witryny handlu elektronicznego dużo inwestują w kampanie reklamowe, ale nie w testowanie obciążenia, aby zapewnić optymalną wydajność systemu, gdy marketing ten generuje ruch.

Rozważ następujące przykłady testów obciążeniowych

  • Popularny sklep z zabawkami Toysrus.com nie był w stanie obsłużyć zwiększonego ruchu generowanego przez kampanię reklamową, co spowodowało utratę zarówno środków marketingowych, jak i potencjalnej sprzedaży zabawek.
  • Witryna linii lotniczej nie była w stanie obsłużyć ponad 10000 XNUMX użytkowników w ramach oferty festiwalowej.
  • Encyclopedia Britannica ogłosiła bezpłatny dostęp do swojej internetowej bazy danych ofertą promocyjną. Nie byli w stanie nadążyć za nawałem ruchu przez tygodnie.

Wiele witryn ma opóźnione czasy ładowania, gdy napotykają duży ruch. Kilka faktów –

  • Większość użytkowników opuszcza stronę po 8 sekundach opóźnienia w ładowaniu strony
  • $ 4.4 BillUtracone corocznie z powodu słabych wyników

Dlaczego testowanie obciążeniowe?

  • Testy obciążeniowe dają pewność co do systemu oraz jego niezawodności i wydajności.
  • Testowanie obciążenia pomaga zidentyfikować wąskie gardła w systemie w scenariuszach dużego obciążenia użytkownika, zanim wystąpią one w środowisku produkcyjnym.
  • Testowanie obciążenia zapewnia doskonałą ochronę przed słabą wydajnością i uwzględnia uzupełniające strategie zarządzania wydajnością i monitorowania środowiska produkcyjnego.

Cele testowania obciążenia

Testy obciążeniowe pozwalają zidentyfikować następujące problemy przed wprowadzeniem aplikacji na rynek lub do produkcji:

  • Czas odpowiedzi na każdą transakcję
  • Wydajność komponentów systemu pod różnymi obciążeniami
  • Wydajność komponentów bazy danych pod różnymi obciążeniami
  • Opóźnienie sieciowe między klientem a serwerem
  • Zagadnienia projektowania oprogramowania
  • Problemy z konfiguracją serwera, np. serwer WWW, serwer aplikacji, serwer bazy danych itp.
  • Problemy z ograniczeniami sprzętowymi, takie jak maksymalizacja procesora, ograniczenia pamięci, wąskie gardło sieci itp.

Testy obciążeniowe pozwolą określić, czy system wymaga dostrojenia, czy też konieczna jest modyfikacja sprzętu i oprogramowania w celu poprawy wydajności. Aby skutecznie przeprowadzić testy obciążeniowe, możesz skorzystać z różnych narzędzia do testowania wydajności które pomogą Ci zidentyfikować obszary wymagające poprawy.

Warunki wstępne testów obciążeniowych

Głównym miernikiem testów obciążeniowych jest czas reakcji. Zanim rozpoczniesz testowanie obciążenia, musisz określić:

  • Czy czas reakcji został już zmierzony i porównany – ilościowe
  • Czy czas reakcji ma zastosowanie do procesu biznesowego – istotne
  • Czy czas reakcji jest uzasadniony – Realistyczny
  • Czy czas reakcji jest osiągalny – Achievable
  • Czy czas reakcji jest mierzalny za pomocą narzędzia czy stopera – Measurable

Przed rozpoczęciem testowania obciążenia należy skonfigurować środowisko:

Platforma sprzętowa Konfiguracja oprogramowania
  • Maszyny serwerowe
  • Procesory
  • Pamięć
  • Miejsce na dysku
  • Załaduj konfigurację maszyn
  • Konfiguracja sieci
  • Operasystemu
  • Oprogramowanie serwerowe

Strategie testów obciążeniowych

Istnieje wiele sposobów przeprowadzania testów obciążeniowych. Poniżej przedstawiono kilka strategii testowania obciążeniowego-

Strategie testów obciążeniowych

  • Ręczne testowanie obciążenia: Jest to jedna ze strategii wykonywania testów obciążeniowych, ale nie daje powtarzalnych wyników, nie może zapewnić mierzalnego poziomu obciążenia aplikacji i jest procesem niemożliwym do skoordynowania.
  • Własne narzędzia do testowania obciążenia: Organizacja, która zdaje sobie sprawę ze znaczenia testów obciążeniowych, może zbudować własne narzędzia do wykonywania testów obciążeniowych.
  • Narzędzia do testowania obciążenia typu open source: Istnieje kilka narzędzi do testowania obciążenia dostępnych w formie otwartego oprogramowania, które są bezpłatne. Być może nie są tak wyrafinowane jak ich płatne odpowiedniki, ale jeśli masz ograniczony budżet, są najlepszym wyborem.
  • Narzędzia do testowania obciążenia klasy korporacyjnej: Zwykle są wyposażone w funkcję przechwytywania/odtwarzania. Obsługują dużą liczbę protokołów. Potrafią symulować wyjątkowo dużą liczbę użytkowników.

Jak przeprowadzić test obciążenia

Proces testowania obciążenia można krótko opisać w następujący sposób:

  1. Stwórz dedykowany Środowisko testowe do testów obciążeniowych
  2. Określ następujące
  3. Załaduj scenariusze testowe
  4. Określ transakcje testowania obciążenia dla aplikacji
    • Przygotuj dane dla każdej transakcji
    • Należy przewidzieć liczbę Użytkowników uzyskujących dostęp do systemu
    • Określ prędkość połączenia. Niektórzy użytkownicy mogą być połączeni za pośrednictwem łączy dzierżawionych, podczas gdy inni mogą korzystać z połączenia telefonicznego
    • Określ różne przeglądarki i systemy operacyjne używane przez użytkowników 
    • Konfiguracja wszystkich serwerów, takich jak serwery internetowe, aplikacyjne i serwery DB
  5. Wykonanie i monitorowanie scenariusza testowego. Zbieranie różnych wskaźników
  6. Przeanalizuj wyniki. Rekomendowac
  7. Dostosuj system
  8. Przetestuj ponownie

Wytyczne dotyczące testowania obciążenia

Wytyczne dotyczące testowania obciążenia

  1. Testy obciążeniowe należy zaplanować, gdy aplikacja stanie się stabilna funkcjonalnie.
  2. W puli danych powinna być gotowa duża liczba unikalnych danych
  3. Dla każdego scenariusza lub skryptu należy określić liczbę użytkowników
  4. Unikaj tworzenia szczegółowych dzienników, aby zaoszczędzić miejsce na dysku we/wy
  5. Staraj się unikać pobierania obrazów ze strony
  6. W procesie wykonywania przypadków testowych testów obciążeniowych należy rejestrować spójność czasu odpowiedzi w całym okresie, który upłynął, i porównywać go z różnymi przebiegami testowymi.

Różnica między testem obciążeniowym a testem obciążeniowym

Testowanie obciążenia Testy warunków skrajnych
Testowanie obciążenia identyfikuje wąskie gardła w systemie przy różnych obciążeniach i sprawdza, jak system reaguje, gdy obciążenie stopniowo wzrasta Testy warunków skrajnych określa punkt załamania układu, aby ujawnić maksymalny punkt, po którym następuje załamanie.
Aby rozpoznać górną granicę systemu, ustaw SLA aplikacji i sprawdź, jak system poradzi sobie z dużym obciążeniem. Aby sprawdzić, jak system zachowuje się pod ekstremalnymi obciążeniami i jak odzyskuje siły po awarii.
Głównym celem testowania obciążenia jest generowanie zwiększonego obciążenia aplikacji internetowej. Testy warunków skrajnych mają na celu zapewnienie, że serwery nie ulegną awarii pod nagłym, dużym obciążeniem przez dłuższy czas.
Atrybuty sprawdzane w teście obciążenia to wydajność szczytowa, liczba serwerów i czas odpowiedzi. Ten rodzaj testów sprawdza czas reakcji stabilności itp.
W testach obciążenia limit obciążenia jest progiem przerwy. W testach obciążeniowych limit obciążenia przekracza próg przerwy.

Różnica między testowaniem funkcjonalnym a testem obciążeniowym

Testy funkcjonalne Testowanie obciążenia
Wyniki testów funkcjonalnych są łatwo przewidywalne, ponieważ mamy określone odpowiednie kroki i warunki wstępne Wyniki testów obciążeniowych są nieprzewidywalne
Wyniki testów funkcjonalnych różnią się nieznacznie Wyniki testów obciążenia różnią się drastycznie
Częstotliwość wykonywania Testy funkcjonalne będzie wysoki Częstotliwość wykonywania testów obciążeniowych będzie niska
Wyniki testów funkcjonalnych zależą od danych testowych Testowanie obciążenia zależy od liczby użytkowników.

Narzędzia do testowania obciążenia

Załaduj Runner:

Load Runner to narzędzie HP używane do testowania aplikacji w warunkach normalnego i szczytowego obciążenia. Moduł Load Runner generuje obciążenie, tworząc wirtualnych użytkowników emulujących ruch sieciowy. Symuluje użycie w czasie rzeczywistym, podobnie jak środowisko produkcyjne, i daje wyniki graficzne.

Przeczytaj więcej o Loadrunnerze tutaj.

Zalety i wady testów obciążeniowych

Oto zalety testowania obciążeniowego:

  • Identyfikacja wąskich gardeł wydajności przed rozpoczęciem produkcji
  • Poprawia skalowalność systemu
  • Minimalizuj ryzyko związane z przestojem systemu
  • Mniejsze koszty awarii
  • Zwiększ satysfakcję klientów

Wady testowania obciążenia:

  • Aby móc korzystać z narzędzi do przeprowadzenia testu obciążeniowego w kontekście testowania oprogramowania, potrzebna jest wiedza programistyczna.
  • Narzędzia mogą być drogie, ponieważ ceny zależą od liczby obsługiwanych użytkowników wirtualnych.

Podsumowanie

  • Testowanie obciążenia definiuje się jako rodzaj testowania oprogramowania, które określa wydajność systemu w rzeczywistych warunkach obciążenia.
  • Testowanie obciążenia zazwyczaj poprawia wąskie gardła wydajności, skalowalność i stabilność aplikacji, zanim będzie ona dostępna w środowisku produkcyjnym.
  • Testowanie to pozwala określić maksymalną przepustowość operacyjną aplikacji, a także wąskie gardła systemu.
  • Testowanie obciążenia w Testowanie oprogramowania jest ważne, ponieważ zignorowane może spowodować straty finansowe dla organizacji.