Udostępnij za pomocą


Kluczowe pojęcia dotyczące nowych użytkowników testowania obciążenia platformy Azure

Dowiedz się więcej o kluczowych pojęciach i składnikach testowania obciążenia platformy Azure. Te informacje mogą pomóc w bardziej efektywnym skonfigurowaniu testu obciążeniowego w celu zidentyfikowania problemów z wydajnością w aplikacji.

Ogólne pojęcia dotyczące testowania obciążenia

Dowiedz się więcej o kluczowych pojęciach związanych z uruchamianiem testów obciążeniowych.

Użytkownicy wirtualni

Użytkownik wirtualny uruchamia konkretny przypadek testowy względem aplikacji serwera i działa niezależnie od innych użytkowników wirtualnych. Możesz użyć wielu użytkowników wirtualnych do symulowania współbieżnych połączeń z aplikacją serwera.

Apache JMeter również nazywa użytkowników wirtualnych wątkami . W teście JMeter w skrypcie testowym element grupy wątków pozwala określić pulę użytkowników wirtualnych. Dowiedz się więcej o grupach wątków w dokumentacji narzędzia Apache JMeter.

Locust odnosi się do użytkowników wirtualnych jako użytkowników . Możesz określić użytkowników potrzebnych do testu w interfejsie internetowym, jako argument wiersza polecenia, za pomocą zmiennej środowiskowej lub pliku konfiguracji. Aby uzyskać więcej informacji, zobacz opcje konfiguracji w dokumentacji Locust.

Łączna liczba użytkowników wirtualnych testu obciążeniowego zależy od liczby użytkowników wirtualnych w skrypcie testowym oraz liczby wystąpień silników testowych .

W przypadku testów obciążeniowych opartych na JMeter formuła to: Łączna liczba użytkowników wirtualnych = (użytkowników wirtualnych w pliku JMX) * (liczba wystąpień aparatu testowego).

Docelową liczbę użytkowników wirtualnych można osiągnąć przez skonfigurowanie liczby instancji silnika testowego, liczby użytkowników wirtualnych w skrypcie testowym lub kombinacji obu tych elementów.

W przypadku testów obciążeniowych opartych na Locust całkowita liczba użytkowników wirtualnych jest liczbą użytkowników określonych za pomocą jakiejkolwiek z opcji konfiguracji. Następnie można skonfigurować liczbę instancji silnika testowego wymaganych do wygenerowania całkowitej liczby użytkowników.

Czas rozruchu

Czas narastania to czas potrzebny na osiągnięcie pełnej liczby użytkowników wirtualnych podczas testu obciążeniowego. Jeśli liczba użytkowników wirtualnych wynosi 20, a czas zwiększania się to 120 sekund, przejście do wszystkich 20 użytkowników wirtualnych zajmuje 120 sekund. Każdy użytkownik wirtualny rozpocznie 6 (120/20) sekund po uruchomieniu poprzedniego użytkownika.

W przypadku Locust można skonfigurować ramp-up przy użyciu tempa generowania. Tempo przyrostu to liczba użytkowników dodawanych na sekundę. Jeśli na przykład liczba użytkowników wynosi 20, a współczynnik pojawiania się wynosi 2, 2 użytkowników zostanie dodanych co sekundę i osiągnięcie liczby 20 użytkowników zajmuje 10 sekund.

Czas odpowiedzi

Czas odpowiedzi pojedynczego żądania, czyli czas trwania w JMeter, to całkowity czas od chwili tuż przed wysłaniem żądania do momentu odebrania ostatniej odpowiedzi. Czas odpowiedzi nie obejmuje czasu renderowania odpowiedzi. Żaden kod klienta, taki jak JavaScript, nie jest przetwarzany podczas testu obciążeniowego.

Opóźnienie

Opóźnienie pojedynczego żądania to całkowity czas od tuż przed wysłaniem żądania do tuż po odebraniu pierwszej odpowiedzi. Opóźnienie obejmuje wszystkie operacje przetwarzania potrzebne do zebrania żądania i zebrania pierwszej części odpowiedzi.

Żądania na sekundę (RPS)

Żądania na sekundę (RPS), lub przepustowość, to całkowita liczba żądań, które test obciążeniowy generuje do aplikacji serwera na sekundę.

Formuła to: RPS = (liczba żądań) / (łączny czas w sekundach).

Czas jest obliczany od początku pierwszej próbki do końca ostatniej próbki. Ten czas obejmuje wszelkie interwały między próbkami, na przykład jeśli skrypt testowy zawiera czasomierze.

Innym sposobem obliczenia rpS jest użycie średniego opóźnienia aplikacji oraz liczby użytkowników wirtualnych. Aby zasymulować określoną liczbę RPS z testem obciążeniowym, można obliczyć wymaganą liczbę użytkowników wirtualnych , biorąc pod uwagę opóźnienie aplikacji.

Formuła to: Użytkownicy wirtualni = (RPS) * (opóźnienie w sekundach).

Na przykład biorąc pod uwagę opóźnienie aplikacji 20 milisekund (0,02 sekund), aby symulować 100 000 RPS, należy skonfigurować test obciążeniowy z 2000 użytkowników wirtualnych (100 000 * 0,02).

Składniki testowania obciążenia platformy Azure

Dowiedz się więcej o kluczowych pojęciach i składnikach testowania obciążenia platformy Azure. Na poniższym diagramie przedstawiono sposób, w jaki różne koncepcje odnoszą się do siebie nawzajem.

Diagram pokazujący, jak różne pojęcia w usłudze Azure Load Testing odnoszą się do siebie nawzajem.

Zasób testowania obciążenia

Zasób testowania obciążenia platformy Azure to zasób najwyższego poziomu dla działań związanych z testowaniem obciążenia. Ten zasób udostępnia scentralizowane miejsce do wyświetlania testów obciążeniowych, wyników testów i powiązanych artefaktów oraz zarządzania nimi.

Podczas tworzenia zasobu testu obciążeniowego należy określić jego lokalizację, która określa lokalizację aparatów testowych . Testy obciążeniowe na platformie Azure automatycznie szyfrują wszystkie artefakty w Twoich zasobach. Możesz wybrać między kluczami zarządzanymi przez firmę Microsoft lub użyć własnych kluczy zarządzanych przez klienta na potrzeby szyfrowania.

Aby uruchomić test obciążeniowy dla aplikacji, należy dodać test do zasobu testowania obciążenia. Zasób może zawierać zero lub więcej testów.

Możesz użyć kontroli dostępu opartej na rolach platformy Azure, aby udzielić dostępu do zasobu testowania obciążenia i powiązanych artefaktów.

Testowanie obciążenia platformy Azure umożliwia używanie tożsamości zarządzanych do różnych celów, takich jak uzyskiwanie dostępu do usługi Azure Key Vault w celu przechowywania tajnych parametrów testu obciążeniowego lub certyfikatów, uzyskiwanie dostępu do metryk usługi Azure Monitor w celu skonfigurowania kryteriów niepowodzenialub symulowanie przepływów uwierzytelniania opartych na tożsamości zarządzanej.

Testowanie

Test opisuje konfigurację testu obciążeniowego dla aplikacji. Dodasz test do istniejącego zasobu testowania obciążenia platformy Azure.

Test zawiera plan testu, który opisuje kroki wywoływania punktu końcowego aplikacji. Plan testu można zdefiniować na jeden z trzech sposobów:

Usługa Azure Load Testing obsługuje wszystkie protokoły komunikacyjne obsługiwane przez narzędzie JMeter i Locust, nie tylko punkty końcowe oparte na protokole HTTP. Na przykład możesz chcieć odczytać lub zapisać w bazie danych lub kolejce wiadomości w skrypcie testowym.

Testowanie obciążenia platformy Azure obecnie nie obsługuje innych platform testowania niż Apache JMeter i Locust.

Test określa również ustawienia konfiguracji uruchamiania testu obciążeniowego:

Ponadto można przekazać pliki danych wejściowych CSV i przetestować pliki konfiguracji do testu obciążeniowego.

Po uruchomieniu testu usługa Azure Load Testing wdraża skrypt testowy, powiązane pliki i konfigurację do instancji aparatu testowego. Instancje silnika testowego następnie inicjują skrypt testowy w celu symulacji obciążenia aplikacji.

Za każdym razem, gdy rozpoczynasz test, usługa Azure Load Testing tworzy przebieg testu i dołącza go do testu.

Przebieg testu

Przebieg testu reprezentuje jedno wykonanie testu obciążeniowego. Po uruchomieniu testu przebieg testu zawiera kopię ustawień konfiguracji ze skojarzonego testu.

Po zakończeniu przebiegu testu możesz wyświetlić i przeanalizować wyniki testu obciążeniowego na pulpicie nawigacyjnym testowania obciążenia platformy Azure w witrynie Azure Portal.

Alternatywnie możesz pobrać dzienniki testów i wyeksportować plik z wynikami testu.

Ważne

Podczas aktualizowania testu istniejące przebiegi testu nie przejmują automatycznie nowych ustawień z testu. Nowe ustawienia są wykorzystywane tylko podczas nowych przebiegów testów, gdy uruchamiasz test . Jeśli uruchomisz ponownie istniejący przebieg testu , zostaną użyte oryginalne ustawienia przebiegu testu.

Aparat testowy

Aparat testowy to infrastruktura obliczeniowa zarządzana przez firmę Microsoft, która uruchamia skrypt testowy. Aparaty testowe uruchamiają skrypt testowy równolegle. Test obciążeniowy można skalować w poziomie, konfigurując liczbę wystąpień aparatu testowego. Dowiedz się, jak skonfigurować liczbę użytkowników wirtualnych lub symulować docelową liczbę żądań na sekundę.

Silniki testowe są hostowane w tej samej lokalizacji co zasób Azure Load Testing. Region świadczenia usługi Azure można skonfigurować podczas tworzenia zasobu testowania obciążenia platformy Azure.

Testowanie obciążenia platformy Azure używa maszyn wirtualnych o rozmiarze Standard_D4d_v4 z czterema procesorami wirtualnymi, pamięcią 16 GB i systemem operacyjnym Azure Linux jako aparatami testowymi. W przypadku testów opartych na JMeter aparaty testowe używają JDK w wersji 21 i Apache JMeter w wersji 5.6.3. W przypadku testów opartych na Locust, aparaty testowe używają Pythona 3.9.19 i Locusta w wersji 2.33.2.

Podczas uruchamiania skryptu testowego usługa Azure Load Testing zbiera i agreguje dzienniki struktury testowania ze wszystkich wystąpień aparatu testowego. Możesz pobrać dzienniki do analizowania błędów podczas testu obciążeniowego.

Składnik aplikacji

Po uruchomieniu testu obciążeniowego dla aplikacji hostowanej na platformie Azure można monitorować metryki zasobów dla różnych składników aplikacji platformy Azure (metryki po stronie serwera). Podczas uruchamiania testu obciążeniowego i po jego zakończeniu można monitorować i analizować parametry zasobów w panelu testowania obciążenia Azure.

Podczas tworzenia lub aktualizowania testu obciążeniowego można skonfigurować listę składników aplikacji, które będą monitorowane przez usługę Azure Load Testing. Możesz zmodyfikować listę domyślnych metryk zasobów dla każdego składnika aplikacji.

Dowiedz się więcej o typach zasobów platformy Azure, które obsługuje usługa Azure Load Testing.

Wskaźniki

Podczas testu obciążeniowego usługa Azure Load Testing zbiera metryki dotyczące wykonywania testu. Istnieją dwa typy metryk:

  • Metryki po stronie klienta są zgłaszane przez silniki testowe. Te metryki obejmują liczbę użytkowników wirtualnych, czas odpowiedzi żądania, liczbę żądań zakończonych niepowodzeniem lub liczbę żądań na sekundę. Można zdefiniować kryteria testu niepowodzenia na podstawie tych metryk po stronie klienta.

  • Metryki po stronie serwera są dostępne dla aplikacji hostowanych na platformie Azure i zawierają informacje o składnikach aplikacji usługi Azure . Testowanie obciążenia platformy Azure integruje się z usługą Azure Monitor, w tym usługą Application Insights i usługą Container Insights, aby przechwycić szczegóły z usług platformy Azure. W zależności od typu usługi dostępne są różne metryki. Na przykład metryki mogą być przeznaczone dla liczby odczytów bazy danych, typu odpowiedzi HTTP lub użycia zasobów kontenera. Można zdefiniować kryteria niepowodzenia testu na podstawie tych metryk po stronie serwera.

Znasz teraz kluczowe pojęcia związane z testowaniem obciążeniowym platformy Azure, aby rozpocząć tworzenie testu obciążeniowego.