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 przepływ systemu może być działaniem asynchronicznym, 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 i zależności oraz ustaw cele oczekiwanego użycia, dostępności, wydajności i 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 dla oczekiwanej liczby logowania użytkownika, żą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 dla ś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żna zaimplementować testowanie 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.