Definieren von Auslastungstests basierend auf den wichtigsten Benutzerflows

Abgeschlossen

Auslastungstests sind ein wichtiger Bestandteil der fortlaufenden Validierung. Zunächst müssen Sie Anwendungsflows identifizieren. In dieser Lerneinheit erfahren Sie mehr über Benutzerabläufe und Systemflows, warum sie wichtig sind und welche Entwurfskriterien für die Tests gelten.

Was sind Anwendungsflows?

Ein Flow besteht aus Anwendungsinteraktionen, die zum Ausführen einer Aufgabe erforderlich sind.

  • Benutzerflow

    In diesen Flows wird angegeben, wie Benutzer mit Ihrer Anwendung interagieren. Im Contoso Shoes-Szenario ist der Bestellvorgang für den Kauf von Artikeln ein Beispiel für einen Benutzerflow. Er besteht aus den folgenden Komponenten, die an der Bestandsverwaltung beteiligt sind:

    • Front-End-Webanwendung
    • Check-Out-Logik in Azure Functions
    • Back-End-Datenbank in Azure Cosmos DB

    Aus unternehmenskritischer Sicht müssen diese Komponenten hochverfügbar und ausfallsicher sein. Beispielsweise muss die Front-End-Webseite schnell geladen werden, da die Organisation viele Benutzer gleichzeitig erwartet.

  • Systemflow

    Der Benutzer ist in der Regel von diesen Flows nicht betroffen, aber ein Ausfall oder eine Verschlechterung der Systemflowkomponenten kann sich auf die Benutzererfahrung auswirken. Ein System kann beispielsweise eine asynchrone Aktivität sein, die Bestellungen aus einer Datenbank aufnimmt und Versandetiketten generiert.

Hinweis

Die meisten Anwendungen verfügen über mehrere Flows. Jeder Flow kann sich auf verschiedene Komponenten der Architektur auswirken. Außerdem kann eine Komponente in mehr als einem Flow angezeigt werden. Es ist wichtig zu verstehen, welche Flows betroffen sind, wenn eine Komponente ausfällt.

Definieren eines Auslastungstests und seiner Schwellenwerte

In einem Auslastungstest wird der reale Datenverkehr simuliert, um die Leistung Ihrer Anwendung zu testen. Das Ziel besteht jedoch nicht darin, eine große Auslastung zu generieren, um Ihr System zu unterbrechen. Dieses Ziel kann durch Stresstests erreicht werden.

Ein Auslastungstest kann dabei helfen, die Leistung, Leistungslimits, Ressourcenauslastung und das optimale Skalierungsverhalten der Komponenten eines Benutzerflows zu identifizieren. Ihre Auslastungstests sollten jeden relevanten Benutzer- und Systemflow widerspiegeln. Für einen guten Entwurf müssen Sie die Anwendung kennen. Stellen Sie zunächst Fragen, wie z. B.:

  • Welche API-Aufrufe müssen ausgeführt werden?
  • Wie sieht die Sequenz der API-Aufrufe aus?
  • Welche Testdaten sollten in den API-Aufrufen verwendet werden?

Basierend auf den Antworten:

  1. Identifizieren Sie wichtige Szenarien und Abhängigkeiten, und legen Sie Ziele für den erwarteten Verbrauch, die Verfügbarkeit, Leistung und Skalierbarkeit fest.

  2. Definieren Sie eine Reihe messbarer Schwellenwerte, um die erwartete Leistung der wichtigsten Szenarien zu quantifizieren. Für eine Anwendungskomponente können Sie beispielsweise Schwellenwerte für die erwartete Anzahl von Benutzeranmeldungen, Anforderungen einer API pro Sekunde und Vorgänge pro Sekunde eines Hintergrundprozesses berücksichtigen.

  3. Verwenden Sie die Schwellenwerte, um einen Auslastungstest zu definieren, der realistischen Datenverkehr zum Testen der Anwendungsleistung, für die Überprüfung der erwarteten Skalierungsvorgänge und für verwandte Aktivitäten generiert. Verwenden Sie diese Schwellenwerte, um ein Integritätsmodell für die Anwendung zu entwickeln, das sowohl Tests als auch die Produktion abdeckt.

    Im Beispiel für den Flow zur Verarbeitung von Check-Outs können Sie den Schwellenwert für die durchschnittliche Seitenladedauer für jeden Schritt auf weniger als 500 Millisekunden festlegen und bis zu 100 gleichzeitige Benutzer unterstützen.

Nachdem nun alle Schwellenwerte definiert sind, können Sie Auslastungstests implementieren. In diesem Modul wird Azure Load Testing verwendet.

Obwohl Sie Azure Load Testing über das Azure-Portal konfigurieren und bereitstellen können, wird ein programmgesteuerter Ansatz dringend empfohlen. Verwenden Sie APIs, um die Tests automatisiert bereitzustellen, zu konfigurieren und auszuführen. Dieser Ansatz wird in der nächsten Lerneinheit behandelt.

Überprüfung der Kenntnisse

1.

Sind alle Benutzer- und Systemflows gleichermaßen wichtig?

2.

Führt ein Ausfall einer Komponente immer zu einer Dienstbeeinträchtigung?

3.

Kann ein Auslastungstest Sie bei der Bewertung der erwarteten Leistung eines Benutzerflows unterstützen?