Testowanie czasu reakcji: jak mierzyć wydajność interfejsu API

⚡ Inteligentne podsumowanie

Testowanie czasu reakcji mierzy czas, jaki system potrzebuje na odpowiedź na żądanie, od momentu wysłania go przez użytkownika do momentu, gdy aplikacja zgłosi jego realizację. W tym przewodniku omówiono metryki, trzy istotne progi oraz narzędzia, które je rejestrują.

  • ⏱️. Definicja podstawowa: Czas reakcji obejmuje cały proces, od wysłania żądania do zakończenia przetwarzania.
  • 📊 Trzy wskaźniki: Średni czas reakcji, szczytowy czas reakcji i wskaźnik błędów razem opisują zachowanie systemu.
  • 🟢 0.1 sekunda: Odczuwalne natychmiastowo, bez odczuwalnego przez użytkownika przerw.
  • 🟡 1 sekunda: Górna granica nieprzerwanego przepływu myśli.
  • ???? 10 sekund: Granica uwagi, choć w praktyce użytkownicy rezygnują dużo wcześniej.
  • 🧪 Metoda pomiaru: Umieść proces biznesowy w transakcjach początkowych i końcowych w narzędziu do testowania obciążenia.

Testowanie czasu reakcji

Co to jest testowanie czasu reakcji?

Testowanie czasu reakcji Mierzy czas potrzebny jednemu węzłowi systemu na odpowiedź na żądanie innego węzła. Jest to odstęp czasu między otrzymaniem żądania a zakończeniem odpowiadającego mu procesu. Na przykład, masz API i chcesz dokładnie wiedzieć, ile czasu zajmuje jego wykonanie i zwrócenie danych w formacie JSON. Czas odpowiedzi mierzy odpowiedź serwera na każdą pojedynczą transakcję lub zapytanie.

Czas odpowiedzi rozpoczyna się w momencie wysłania żądania przez użytkownika i kończy w momencie, gdy aplikacja stwierdza, że ​​żądanie zostało zrealizowane.

Jak mierzyć czas reakcji

Aby zmierzyć czas reakcji, możemy użyć narzędzi testowych, otaczając ważny proces biznesowy transakcjami początkowymi i końcowymi. Proces biznesowy może być akcją lub zestawem akcji, które użytkownicy wykonują w aplikacji w celu wykonania zadania biznesowego, np. zalogowania się do aplikacji lub zakupu książki w serwisie. Amazon.com

Testowanie czasu reakcji
Testowanie czasu reakcji

W przypadku tego samego procesu pomiaru czasu odpowiedzi dla interfejsu API odpowiedź będzie się nieznacznie różnić w zależności od narzędzia. Oto dlaczego

  • Krok 1) Metoda obliczania metryk zbieranych przez każde narzędzie do testowania czasu odpowiedzi API
  • Krok 2) Narzędzia Symuluj prędkość ładowania i przechwytywania, co może mieć wpływ na czas reakcji
  • Krok 3) Dodatkowe elementy rejestrowane podczas monitorowania obciążeń użytkowników
  • Krok 4) Metryki obliczeniowe gromadzone przez każde narzędzie wydłużają czas odpowiedzi ze względu na duże zużycie zasobów.
  • Krok 5) Architektura obu narzędzi może się różnić

Rodzaje metryk reakcji

Metryki czasu reakcji Wyjaśnienie
Średni czas reakcji Średni czas odpowiedzi to średni czas potrzebny na każde żądanie podróży w obie strony. Średni czas odpowiedzi obejmuje czas ładowania HTML, CSS, XML, obrazów, JavaPliki skryptów itp. Dlatego średnia ulega obniżeniu, gdy w systemie znajdują się wolne komponenty.
Szczytowy czas reakcji Szczytowy czas reakcji pomaga nam znaleźć potencjalnie problematyczne komponenty. Pomaga nam to znaleźć wszelkie nieprawidłowości na stronie lub w systemie, w których określone żądanie nie zostało poprawnie obsłużone. Na przykład może zostać wykonane duże zapytanie do bazy danych, co może mieć wpływ na czas odpowiedzi. To zapytanie nie pozwala na załadowanie strony w żądanym czasie.
Wskaźnik błędu Współczynnik błędów to obliczenie matematyczne, które pokazuje odsetek żądań problemowych w stosunku do wszystkich żądań. Ten odsetek zlicza wszystkie kody statusu HTTP wyświetlające błąd na serwerze. Zlicza również żądania, które przekroczyły limit czasu.

Trzy progi czasu reakcji, które mają znaczenie

W każdym raporcie dotyczącym czasu reakcji najważniejsze są dwie liczby:

  • Średni czas odpowiedzi
  • Maksymalny lub szczytowy czas reakcji

Razem pokazują, jak długo zazwyczaj czeka użytkownik i jak długo czeka ten, kto ma najwięcej pecha.

Poniżej przedstawiono kluczowe przykładowe wartości testu czasu reakcji

Czas odpowiedzi Znaczenie
0.1 drugie Jest to najbardziej preferowany czas reakcji. Jeśli czas reakcji wynosi 0.1, użytkownicy zawsze mają wrażenie, że aplikacja lub system reaguje natychmiast i nie odczuwają żadnych zakłóceń.
1.0 drugie Jest to akceptowany górny limit nieprzerwanego działania. Użytkownicy prawdopodobnie nie odczują żadnych przerw, choć mogą doświadczyć pewnego opóźnienia. Czas reakcji dłuższy niż 1 sekunda może zakłócić działanie aplikacji.
Sekundy 10 Jest to maksymalny limit, po przekroczeniu którego czas reakcji przekracza dopuszczalny limit. Jednak w dzisiejszych czasach, jeśli czas odpowiedzi przekroczy 6 sekund, użytkownik opuści witrynę lub zamknie aplikację.

Dąż do przedziału od 0.1 do 1 sekundy, gdziekolwiek to możliwe. Użytkownicy przyzwyczajają się do wolniejszych systemów, ale poziom satysfakcji gwałtownie spada po przekroczeniu około 2 sekund, a każda dodatkowa sekunda zwiększa ryzyko rezygnacji.

Narzędzia do testowania czasu reakcji

Dostępnych jest wiele narzędzi do testowania czasu reakcji. Dwa z najpopularniejszych to:

1) JMeter

Apache JMeter to narzędzie do testowania obciążenia typu open source. Służy do pomiaru wydajności stron internetowych. To narzędzie do testowania obciążenia można wykorzystać w metodologii DevOps.

JMeter

Cechy:

  • JMeter umożliwia wykonanie testów obciążenia i wydajności dla różnych typów serwerów.
  • To narzędzie do testowania obciążenia przechowuje plany testów w formacie XML, co pozwala użytkownikom generować plan testów za pomocą edytora tekstu.
  • Narzędzie może służyć do wykonywania zautomatyzowanych i testy funkcjonalności aplikacji.

Download link: Apache JMeter pliki do pobrania


2) Załaduj prowadnicę

Loadrunner od Micro Focus to powszechnie używane narzędzie do testowania obciążenia. Jest to jedna z najlepszych alternatyw dla JMeter który oferuje przyjazny dla użytkownika interfejs monitorowania i analizy z kolorowymi wykresami i grafiką.

Załaduj biegacz

Cechy:

  • Obsługuje ciągłe testowanie
  • LoadRunner może efektywnie pracować w kilku środowiskach korporacyjnych
  • Możliwe jest uruchomienie skryptu z wieloma protokołami Loadrunner
  • Integracja z różnymi narzędziami programistycznymi, takimi jak visual Studio, Jenkins, Selenium, itp.

Download link: LoadRunner Professional

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.

Testowanie czasu reakcji: najważniejsze wnioski

  • Czas reakcji to czas, w którym jeden węzeł systemu odpowiada na żądanie innego węzła.
  • Średni czas odpowiedzi w test wydajności to średni czas potrzebny na realizację każdego żądania podróży w obie strony.
  • Czas reakcji szczytowej ujawnia, które komponenty mogą stwarzać potencjalne problemy.
  • Współczynnik błędów to obliczenie matematyczne, które wyświetla procent żądań problematycznych.
  • Trzy kluczowe wartości czasu reakcji to: 0.1 sekundy, 1.0 sekundy i 10 sekund.
  • Dwa z najczęściej używanych narzędzi do testowania czasu reakcji to: JMeter oraz LoadRunner.

FAQ

Opóźnienie to czas przesyłania żądania przez sieć. Czas odpowiedzi obejmuje opóźnienie oraz przetwarzanie i renderowanie na serwerze. Szybka sieć może nadal generować krótkie czasy odpowiedzi, jeśli serwer jest powolny.

Średnia ukrywa wartości odstające. System ze średnią 800 ms i 95. percentylem 9 sekund zawodzi jednego użytkownika na dwudziestu, a ujawnia to tylko percentyl.

Staraj się, aby interakcje trwały poniżej 1 sekundy, a pełne ładowanie strony poniżej 2 sekund. Powyżej 3 sekund odsetek porzucania strony gwałtownie rośnie, niezależnie od tego, co sugeruje teoretyczny limit 10 sekund.

Monitorowanie oparte na sztucznej inteligencji ustala normalną linię bazową dla każdego punktu końcowego i automatycznie sygnalizuje odchylenia, zastępując stałe progi generujące szum podczas oczekiwanych szczytów ruchu.

Tak. Modele trenowane na podstawie historycznych przebiegów wydajności mogą sygnalizować, które zmiany w kodzie mogą spowolnić działanie punktu końcowego. Potwierdź każdą prognozę rzeczywistym przebiegiem pomiarowym.

Podsumuj ten post następująco: