Co to jest testowanie szczytowe w testowaniu oprogramowania? Ucz się na przykładzie

⚡ Inteligentne podsumowanie

Testy Spike poddaje aplikację nagłemu, ekstremalnemu wzrostowi obciążenia, a następnie równie gwałtownie je wyłącza. Celem jest sprawdzenie, czy system przetrwa ten skok i, co równie ważne, czy po nim odzyska sprawność.

  • Wzór obciążenia: Nagłe wzniesienie znacznie powyżej normalnego natężenia ruchu, utrzymane na krótko, a następnie zniesione.
  • 🎯 Główny cel: Sprawdź, czy system ulega awarii i czy awaria ta przebiega prawidłowo.
  • 🔄 Sprawy związane z odzyskiwaniem sił: Powrót do normalnego czasu reakcji po skoku napięcia jest tak samo ważny jak przetrwanie go.
  • 📈 Realistyczne wyzwalacze: Wyprzedaże błyskawiczne, premiery biletów, ruch wirusowy i zaplanowane zadania wsadowe.
  • 🛠️. Obróbka: JMeter i LoadRunner modelują natychmiastowy, a nie stopniowy wzrost.
  • 📊 Co oglądać: Współczynnik błędów, głębokość kolejki i czas powrotu do stanu wyjściowego.

Czym jest testowanie kolców

Co to jest testowanie szczytowe?

Testowanie Spike'a to rodzaj testowania oprogramowania, podczas którego testowana jest aplikacja przy ekstremalnych przyrostach i spadkach obciążenia ruchem. Głównym celem testowania skoków jest ocena zachowania aplikacji przy nagłym wzroście lub spadku obciążenia użytkownika i określenie czasu odzyskiwania po gwałtownym wzroście obciążenia użytkownika.

Testy szczytowe przeprowadza się w celu oszacowania słabych punktów aplikacji.

Testowanie Spike'a
Testowanie Spike'a

Cele testu kolców

Celem testów Spike'a jest sprawdzenie, jak system reaguje na nieoczekiwany wzrost i spadek obciążenia użytkownika. W inżynierii oprogramowania testy Spike pomagają określić, czy wydajność systemu ulegnie pogorszeniu w przypadku nagłego dużego obciążenia.

Kolejnym celem testów Spike jest określenie czasu regeneracji. Pomiędzy dwoma kolejnymi skokami obciążenia użytkownika system potrzebuje trochę czasu na ustabilizowanie się. Czas regeneracji powinien być jak najkrótszy.

Jak przeprowadzić test Spike

Oto proste kroki, jak przeprowadzić test Spike:

Krok 1) Określ nośność

Określ maksymalną obciążalność użytkownika aplikacji.

Krok 2) Przygotuj środowisko testowe

Przygotuj środowisko testowe i skonfiguruj je tak, aby rejestrowało parametry wydajnościowe.

Krok 3) Zdefiniuj oczekiwane obciążenie

Zastosuj oczekiwane maksymalne obciążenie aplikacji za pomocą pliku Narzędzie do testowania wydajności swojego wyboru.

Krok 4) Zwiększ obciążenie

Szybko zwiększaj obciążenie systemu na określony czas.

Krok 5) Ustaw obciążenie z powrotem na normalne

Stopniowo zmniejszaj obciążenie do pierwotnego poziomu.

Krok 6) Przeanalizuj wyniki

Analizuj wykresy wydajności i wskaźniki, takie jak awarie, czas potrzebny, wirtualni użytkownicy itp.

Przykłady scenariuszy testowania skoków

  • Kiedy sklep eCommerce wprowadza specjalne oferty ze świetnymi rabatami, np. w Czarny Piątek.
  • Gdy aplikacja internetowa transmituje na żywo ulubiony program telewizyjny.
  • Kiedy na stronie z ofertami dziennymi trwa wyprzedaż błyskawiczna.
  • Kiedy określona treść witryny staje się wirusowa w Internecie.
  • Nowy system zostaje wypuszczony do produkcji i wielu użytkowników chce uzyskać do niego dostęp.
  • Awaria zasilania może spowodować, że wszyscy użytkownicy utracą dostęp do systemu. Po rozwiązaniu problemu awarii wszyscy użytkownicy logują się ponownie do systemu jednocześnie.

Scenariusze odzyskiwania przy obciążeniach szczytowych

Trzy główne scenariusze odzyskiwania, które można skonfigurować w celu ochrony przed Spikesami, to:

  1. Korzystaj z platform chmurowych, takich jak AWS, Azure dynamicznie zwiększać pojemność serwera wraz z obciążeniem użytkowników
  2. Nie zezwalaj na dostęp do aplikacji niektórym użytkownikom, aby system nie był narażony na duże obciążenie. Zapobiega to przedostawaniu się do systemu osób przekraczających maksymalne zaprojektowane obciążenie. Chroni w ten sposób system przed zagrożeniem nadmiernym obciążeniem.
  3. Administrator witryny pozwala użytkownikom dołączyć do systemu. Jednak z ostrzeżeniem, że mogą spotkać się z powolną reakcją z powodu dużego obciążenia. Może to mieć niekorzystny wpływ na wydajność systemu. Użytkownik będzie jednak mógł pracować z systemem.

Zalety i wady badania kolców

Poniżej znajdują się zalety i wady testów Spike:

Zalety Wady
Wydajność oprogramowania należy utrzymywać za wszelką cenę. Jednak w przypadku ekstremalnego wzrostu obciążenia dowolnego systemu ryzyko wystąpienia problemów jest duże. Spike Testing pomaga przetestować taki scenariusz. Jedyną wadą testów Spike jest to, że jest to kosztowny proces testowania. Należało zatem stworzyć specjalne warunki testowe. Jednak w dłuższym okresie z pewnością da to dodatni zwrot z inwestycji.
W standardowej metodzie testowania można nie uwzględnić scenariuszy od złego do najgorszego. Jednak ignorowanie ich nie oznacza, że ​​nigdy nie wystąpią. Dlatego każde oprogramowanie powinno być przygotowane na takie możliwości. Jednym z takich najgorszych scenariuszy jest obciążenie, które można ocenić i zminimalizować za pomocą testów impulsowych.  

Narzędzia do testowania skoków

1) JMeter

Apache JMeter to narzędzie do testowania skoków Java typu open source. Został specjalnie zaprojektowany do ładowania zachowań testów funkcjonalnych i pomiaru wydajności. Tego narzędzia do testowania wydajności można używać do analizowania i pomiaru wydajności aplikacji internetowych lub różnych usług. Obecnie jest szeroko stosowany do testu funkcjonalnego, testu serwera bazy danych.

2) LoadRunner

LoadRunner to narzędzie do testowania obciążenia Windows i Linux, który umożliwia testowanie skoków aplikacji internetowych i innych. Pomaga określić wydajność i wynik aplikacji nawet przy dużym obciążeniu.

Jak ten test pasuje do rodziny testów wydajnościowych

Testowanie wydajności to termin ogólny. Poniższe warianty różnią się jedynie kształtem przyłożonego obciążenia i czasem jego utrzymywania, dlatego tak często są ze sobą mylone.

Rodzaj testu Wzór obciążenia Pytanie, na które odpowiada
Testowanie obciążenia Oczekiwane obciążenie szczytowe, krótki czas trwania Czy system spełnia swoje cele przy normalnym, szczytowym natężeniu ruchu?
Test naprężeń Zwiększony ponad pojemność aż do awarii Gdzie następuje przerwa i czy awaria przebiega gładko?
Testowanie Spike'a Nagły, ekstremalny wzrost, a następnie wycofanie Czy przeżywa i dochodzi do siebie po szoku komunikacyjnym?
Testy wytrzymałościowe Normalne obciążenie utrzymywane przez wiele godzin Czy wydajność pogarsza się z czasem?
Testowanie zanurzeniowe Długotrwałe obciążenie przez dłuższy okres Czy występują wycieki pamięci lub wyczerpanie zasobów?
Testy stabilności Zmienne obciążenie w różnych warunkach Czy system pozostaje niezawodny w zmieniających się warunkach?
Testowanie głośności Zwykli użytkownicy, bardzo duża ilość danych Czy system radzi sobie ze wzrostem bazy danych?

Test wytrzymałościowy i test zanurzeniowy są często traktowane jako synonimy. W powszechnym użyciu są to: oba utrzymują stałe obciążenie przez długi czas. Tam, gdzie zespoły je rozróżniają, testy wytrzymałościowe koncentrują się na tym, czy czasy reakcji rosną, podczas gdy testy nasączenia koncentrują się na zużyciu zasobów, takich jak pamięć, uchwyty plików i pule połączeń. Uruchomienie takiego testu zazwyczaj dostarcza dowodów na oba te zjawiska.

Kluczowe wskaźniki do uchwycenia podczas testu

Wydajność testu jest tak dobra, jak to, co rejestrujesz podczas jego wykonywania. Zarejestruj te sześć parametrów po stronie serwera i klienta, a następnie porównaj je z danymi bazowymi, a nie z przeczuciem.

metryczny Co ci to mówi Znak ostrzegawczy
Średni czas odpowiedzi Typowe doświadczenie użytkownika Jakiekolwiek przesunięcie w górę w poprzek biegu
95. percentyl czasu reakcji Doświadczenia najwolniejszych użytkowników Znacznie powyżej średniej, co oznacza niespójność
Wydajność Liczba żądań obsłużonych na sekundę Spadek przy stałym obciążeniu
Poziom błędu Udział nieudanych lub przekroczonych limitów czasu żądań Każde przekroczenie ustalonego progu
Wykorzystanie procesora i pamięci Zapas zasobów serwera Pamięć, która pnie się w górę i nigdy nie powraca
Połączenia i wątki bazy danych Wyczerpanie basenu Liczba, która stale rośnie bez wydawania

Odczytaj średnią i percentyl jednocześnie. Średnia 800 ms przy 95. percentylu 900 ms opisuje spójny system. Ta sama średnia przy 95. percentylu 9 sekund oznacza, że ​​jeden na dwudziestu użytkowników ma problemy, a średnia to ukrywa.

Zwróć uwagę na kształt, nie tylko na wartość. W przypadku każdego długotrwałego testu płaska linia zasobów oznacza zaliczenie testu, a rosnąca – przeciek, nawet jeśli w chwili zakończenia testu liczba bezwzględna nadal mieści się w limicie.

Testowanie kolców: najważniejsze wnioski

  • Testowanie oprogramowania to rodzaj testowania oprogramowania, podczas którego testowana jest aplikacja przy ekstremalnych przyrostach i spadkach obciążenia ruchem.
  • Właściwym podejściem do testowania skoków jest nieoczekiwane zwiększenie liczby użytkowników, a następnie natychmiastowe zmniejszenie obciążenia.
  • Nieoczekiwany ładunek jest głównym atrybutem transakcji.
  • Przykładami rzeczywistych scenariuszy testowania Spike są: sytuacja, w której sklep eCommerce wprowadza specjalne oferty ze świetnymi rabatami, np. w Czarny Piątek. Alternatywnie, gdy aplikacja internetowa transmituje na żywo ulubiony program telewizyjny.
  • JMeter jest jednym z takich przydatnych narzędzi do testowania impulsów.

FAQ

Testy obciążeniowe polegają na stopniowym zwiększaniu obciążenia, aż do momentu awarii systemu, aby osiągnąć jego maksymalny poziom. Testy skokowe powodują natychmiastowe, ekstremalne obciążenie, aby sprawdzić, czy nagły wstrząs spowoduje awarię, której nie spowodowałby stopniowy wzrost obciążenia.

System, który działa, ale nigdy nie powraca do normalnego czasu reakcji, i tak zawiódł użytkowników, którzy pojawili się po skoku. Czas odzyskiwania to wskaźnik odzwierciedlający rzeczywisty wpływ na działalność firmy.

Oprzyj się na rzeczywistym zdarzeniu, a nie na zaokrąglonej liczbie. Historyczny ruch z poprzedniej sprzedaży lub premiery, pomnożony przez przewidywany wzrost od tego czasu, daje cel, który można obronić.

Modele sztucznej inteligencji wytrenowane na podstawie historii ruchu, kalendarzy marketingowych i sygnałów zewnętrznych prognozują momenty wystąpienia skoków natężenia ruchu, co pozwala zespołom wstępnie skalować infrastrukturę zamiast reagować po fakcie.

Tak. Narzędzia AI potrafią tworzyć profile szczytów na podstawie dzienników dostępu do produkcji, odtwarzając rzeczywisty kształt poprzednich szczytów zamiast sztucznych skoków.

Podsumuj ten post następująco: