Testy obciążeniowe i wydajnościowe

Testy wydajnościowe i obciążeniowe

Testy obciążeniowe i wydajnościowe serwisu pozwalają spokojnie oczekiwać na ruch użytkowników bez obaw o dostępność serwisu. Kiedy wdrażamy nowy serwis lub aplikację, zwykle dopiero po jego upublicznieniu dowiadujemy się, czy wytrzymuje ruch, jaki na niego trafia. Można temu zapobiec, poznać wcześniej słabe punkty serwisu albo upewnić się, że będzie działał dobrze z planowanym ruchem. Testy obciążeniowe często znajdują bardzo poważne błędy, które z pewnością doprowadziłyby do problemów z wydajnością serwisu – do tego wystarczy jeden zapomniany indeks w bazie danych. Testy wydajnościowe symulą ruch użytkowników, pozwalając poznać "granice" serwisu lub aplikacji.  

Jako Hostersi, wykonujemy kilka rodzajów testów:

  • Load Test - polega na stopniowym zwiększaniu obciążenia na system lub aplikację w celu oceny, jak zachowują się w warunkach spodziewanego produkcyjnego przeciążenia. Celem jest określenie, jakie obciążenie systemu lub aplikacji jest w stanie obsłużyć przed degradacją wydajności lub awarią, np. czy aplikacja po aktualizacji nadal spełnia minimalne wymagania wydajności. Test obciążenia jest przeprowadzany poprzez stopniowe zwiększanie liczby użytkowników lub obciążenia na aplikacji lub systemie, aż zostanie osiągnięty punkt przeciążenia (np. 5% błędów).
  • Spike Test - polega na gwałtownym i znacznym zwiększeniu obciążenia systemu w krótkim okresie czasu, aby ocenić, jak system radzi sobie z nagłymi szczytami ruchu. Celem jest określenie, czy system jest w stanie obsłużyć nieoczekiwane wzrosty ruchu, takie jak promocje lub wydarzenia specjalne. Może to być symulowane poprzez nagle zwiększenie liczby jednoczesnych użytkowników lub obciążenia na systemie w sposób kontrolowany, aby sprawdzić, jak system reaguje na nagłe wzrosty ruchu.
  • Soak Test (zwany czasem Endurance Test) - polega na utrzymaniu stałego obciążenia na systemie lub aplikacji przez dłuższy okres, aby sprawdzić, czy nie występują wycieki pamięci lub inne problemy z zasobami. Celem jest określenie, czy system jest stabilny i nie degraduje swojej wydajności podczas długotrwałego działania. Przeprowadza się go, monitorując zasoby systemu, takie jak pamięć i procesor, w celu wykrycia ewentualnych wycieków lub degradacji wydajności. Jest przeważnie rozszerzeniem Load Testu.
  • Stress Test - polega na przekraczaniu granic wydajności systemu, wprowadzaniu awarii lub nadmiernego obciążenia w celu zidentyfikowania punktu, w którym system przestaje działać zgodnie z oczekiwaniami. Celem jest określenie granic wydajności systemu, identyfikacja słabych punktów i ocena, jak system zachowuje się podczas nieprzewidywalnych i ekstremalnych warunków.

testy obciążeniowe i wydajnościowe

Przykładowe narzędzia, które używamy do testów

testy obciążeniowe i wydajnościowe

 

Rezultaty zrealizowanych przez nas testów dla wybranych klientów:

 

 

Alerabat

Pierwsza seria optymalizacji podniosła wydajność platformy AleRabat.com od 2 do 5 razy, w zależności od scenariusza testów. Po ostatniej iteracji testów, wprowadzeniu Redisa i poprawek do niego, wydajność platformy wzrosła 8-krotnie względem pierwszych testów

 

 

 

Open'er

Przygotowanie serwisu festiwalu na wzrost odwiedzin użytkowników aż o 1500% w porównaniu do „zwykłego okresu” przy zachowaniu pierwotnej wydajności strony.

 

 

Siecportali.pl

Podjęte przez nas działania skróciły czas ładowania strony głównej z 8 do 2,4 sekundy, a ilość realizowanych zapytań na sekundę podnieśliśmy z 1100 do 3500.

 

 

Prestige MJM

Przygotowanie infrastruktury aplikacji sprzedającej bilety na koncert Justina Biebera na obsłużenie 13 tys. użytkowników na minutę przy zachowaniu pierwotnej wydajności.

 

Futbolowo.pl

W ciągu zaledwie dwóch tygodni po wdrożeniu optymalizacji wydajnościowej liczba zarejestrowanych w portalu stron klubów piłkarskich uległa podwojeniu z 1,5 tys.  do 3 tys.

 

 

Aby przeprowadzić typowy test wydajnościowy potrzeba:

  • infrastruktury testowej na jakiej prowadzony jest test bez obciążania serwerów produkcyjnych,
  • scenariusza testowego czyli ścieżki (lub ścieżek) po jakiej poruszają się na stronie/aplikacji użytkownicy,
  • analizy zachowania platformy w czasie testu i dopasowania parametrów testu,
  • raportu z wynikami testów i zaleceniami,
  • czasem kilkukrotnych retestów po wprowadzeniu poprawek a nawet wielu iteracji poprawek.

 

Wszystkie te elementy możemy dla Ciebie zrealizować

Przygotowujemy infrastrukturę testową (na której bedziemy wykonywac testy), testującą (z której wygenerujemy ruch), jak i scenariusze testowe. Przeprowadzimy też sam test, symulując określony ruch. Mamy też ogromne doświadczenie utrzymując platformy, na których hostowane są serwisy i aplikacje, więc możesz liczyć na użyteczne informacje, co poprawić, co zmienić aby osiągnąć lepsze wyniki.

 

Po co wykonywać testy obciążeniowe i wydajnościowe?

 

  1. Zwiększ sprzedaż dzięki optymalizacji wydajności swojego sklepu, serwisu lub aplikacji!

    Testy wydajnościowe pozwalają zidentyfikować wąskie gardła i optymalizować działanie serwisu. Szybsze ładowanie to mniejszy współczynnik odrzuceń i wyższe wskaźniki konwersji. Każda sekunda opóźnienia w ładowaniu serwisu lub aplikacji może obniżyć współczynnik konwersji nawet o 7%.

  2. Monitorowanie wydajności = mniejsze koszty operacyjne

    Regularne testy wydajnościowe umożliwiają proaktywne zarządzanie zasobami serwera i optymalizację infrastruktury. To nie tylko poprawia doświadczenia użytkowników, ale także redukuje koszty związane z utrzymaniem i skalowaniem systemu.

  3. Lepsza wydajność, lepsze SEO

    Szybkość ładowania serwisu ma bezpośredni wpływ na pozycjonowanie w wyszukiwarkach. Dzięki testom wydajnościowym możemy poprawić ranking sklepu w wynikach wyszukiwania, przyciągając więcej organicznego ruchu i potencjalnych klientów

  4. Skalowalność i gotowość na przyszłość

    Testy wydajnościowe przygotowują Twój serwis na wzmożony ruch, np. w okresie wyprzedaży czy promocji. Dzięki nim możesz mieć pewność, że Twoja platforma poradzi sobie z każdym wyzwaniem, niezależnie od obciążenia.

  5. Znajdź i napraw ukryte błędy zanim zrobią to Twoi klienci!

    Testy wydajnościowe pozwalają na wykrycie problemów, które mogą być niezauważalne przy zwykłym testowaniu. Dzięki nim możemy szybko reagować na awarie i unikać kosztownych przestojów. Bądź o krok przed konkurencją!

Case Studies
Referencje

Hostersi zrealizowali usługi konsultingowe z zakresu doboru odpowiedniej bazy danych w Amazon Web Services oraz pomyślnie przeprowadzili migrację bazy danych MySQL do Amazon Aurora. 

Tomasz Ślązok
CTO Landingi
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.