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ą.

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

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.
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ą.
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.


