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ść.

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.

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:
- Korzystaj z platform chmurowych, takich jak AWS, Azure dynamicznie zwiększać pojemność serwera wraz z obciążeniem użytkowników
- 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.
- 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.
