Definiowanie testów obciążeniowych na podstawie kluczowych przepływów użytkownika

Ukończone

Testowanie obciążenia jest ważną częścią ciągłej walidacji. Aby rozpocząć, musisz zidentyfikować przepływy aplikacji. W tej lekcji poznasz przepływy użytkowników i systemów, dlaczego są one ważne, oraz kryteria projektowania testów.

Co to są przepływy aplikacji?

Przepływ składa się z interakcji aplikacji wymaganych do wykonania zadania.

  • Przepływ użytkownika

    Te przepływy wskazują, jak użytkownicy wchodzą w interakcję z aplikacją. W scenariuszu Contoso Shoes proces wyewidencjonowania elementów jest przykładem przepływu użytkownika. Zawiera on następujące składniki, które uczestniczą w zarządzaniu zapasami:

    • Aplikacja internetowa frontonu
    • Logika wyewidencjonowania w usłudze Azure Functions
    • Baza danych zaplecza w usłudze Azure Cosmos DB

    Z punktu widzenia misji krytyczne składniki te muszą być wysoce dostępne i odporne na awarie. Na przykład strona internetowa frontonu musi być ładowana szybko, ponieważ organizacja oczekuje dużej liczby równoczesnych użytkowników.

  • Przepływ systemu

    Te przepływy nie są zwykle dostępne dla użytkowników, ale awaria lub degradacja składników przepływu systemu może mieć wpływ na środowisko użytkownika. Na przykład działanie asynchroniczne, które pobiera zamówienia z bazy danych i generuje etykiety wysyłkowe.

Uwaga

Większość aplikacji ma wiele przepływów. Każdy przepływ może dotykać różnych składników architektury. Ponadto składnik może pojawić się w więcej niż jednym przepływie. Ważne jest, aby zrozumieć, które przepływy mają wpływ na awarię składnika.

Definiowanie testu obciążeniowego i jego wartości progowych

Test obciążeniowy symuluje rzeczywisty ruch w celu przetestowania wydajności aplikacji. Jednak celem nie jest wygenerowanie dużego obciążenia w celu przerwania systemu. Ten cel można osiągnąć za pomocą testów obciążeniowych.

Test obciążeniowy może pomóc w zidentyfikowaniu wydajności, limitów wydajności, wykorzystania zasobów i optymalnego zachowania skalowania składników przepływu użytkownika. Testy obciążeniowe powinny odzwierciedlać każdy odpowiedni przepływ użytkownika i przepływ systemu. Dobry projekt wymaga znajomości aplikacji. Zacznij od zadawania pytań, takich jak:

  • Które wywołania interfejsu API należy wykonać?
  • Jaka jest sekwencja wywołań interfejsu API?
  • Jakich danych testowych należy używać z wywołaniami interfejsu API?

Na podstawie odpowiedzi:

  1. Zidentyfikuj kluczowe scenariusze, zależności, oczekiwane użycie, dostępność, wydajność i cele skalowalności.

  2. Zdefiniuj zestaw mierzalnych wartości progowych, aby określić oczekiwaną wydajność kluczowych scenariuszy. Na przykład w przypadku składnika aplikacji można rozważyć wartości progowe oczekiwanej liczby logowań użytkowników, żądań na sekundę interfejsu API i operacji na sekundę procesu w tle.

  3. Użyj wartości progowych, aby zdefiniować test obciążeniowy, który generuje realistyczny ruch na potrzeby testowania wydajności aplikacji, weryfikowania oczekiwanych operacji skalowania i powiązanych działań. Użyj tych wartości progowych, aby opracować model kondycji dla aplikacji, która obejmuje zarówno testowanie, jak i produkcję.

    W przykładzie przepływu procesu wyewidencjonowania można ustawić próg średniego czasu trwania ładowania strony dla każdego kroku na mniej niż 500 milisekund i obsługiwać maksymalnie 100 równoczesnych użytkowników.

Po zdefiniowaniu wszystkich wartości progowych możesz teraz przystąpić do implementowania testowania obciążenia. W tym module jest używane testowanie obciążenia platformy Azure.

Mimo że można skonfigurować i wdrożyć testowanie obciążenia platformy Azure za pośrednictwem witryny Azure Portal, zdecydowanie zaleca się stosowanie podejścia programowego. Użyj interfejsów API, aby wdrożyć, skonfigurować i uruchomić testy w zautomatyzowany sposób. To podejście zostało omówione w następnej lekcji.

Test wiedzy

1.

Czy wszystkie przepływy użytkownika i systemu są równie ważne?

2.

Czy awaria składnika zawsze powoduje obniżenie wydajności usługi?

3.

Czy test obciążeniowy może pomóc ocenić oczekiwaną wydajność przepływu użytkownika?