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ąć pracę, 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 ukończenia zadania.

  • Przepływ użytkownika

    Te przepływy wskazują sposób interakcji użytkowników z aplikacją. W scenariuszu firmy Contoso Shoes proces wyewidencjonowania elementów jest przykładem przepływu użytkownika. Ma on następujące składniki, które uczestniczą w zarządzaniu spisem:

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

    Z punktu widzenia misji krytyczne te składniki 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 warunków skrajnych.

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. Identyfikowanie kluczowych scenariuszy, zależności, oczekiwanego użycia, dostępności, wydajności i docelowych 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 testowanie i produkcję.

    W przykładzie przepływu procesu wyewidencjonowania można ustawić próg średniego czasu ł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 przystąpić do implementowania testów obciążeniowych. 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 pomocą Azure Portal, zdecydowanie zaleca się podejście programowe. Używanie interfejsów API do wdrażania, konfigurowania i uruchamiania testów 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?