Wenn es um Lasttests geht, gibt es immer die Millionen-Dollar-Frage: „Was möchte der Kunde in Bezug auf die Leistung mit seiner Anwendung und dem System machen?“ Ich bin mir ziemlich sicher, dass Sie nie eine einfache Antwort auf diese Frage erhalten werden, und die meisten von uns nehmen immer einige Dinge an und führen die Leistungstests durch, was dazu führen kann, dass kritische Teile nicht getestet werden und am Ende ein unzufriedener Kunde steht. Ein unzufriedener Kunde bedeutet Geschäftsverlust für Ihre Organisation und eine abnehmende Karriere als Performance Engineer. Aber keine Sorge, in diesem Artikel werden wir darüber sprechen, wie man eine Checkliste erstellt, die Ihnen bei diesen Fragen hilft.

Diese Checkliste ist eher wie ein Schritt-für-Schritt-Prozess, dem Sie folgen und den Sie an Ihren Lebenszyklus der Leistungstests anpassen können. In dem besprochenen Szenario können wir unseren Kunden nicht immer die Schuld geben, denn anfangs wissen sie möglicherweise nicht genau, welche Leistungsergebnisse sie wünschen, aber sie wissen genau, wie die Anwendung unter verschiedenen Bedingungen funktioniert. Ein guter Performance-Tester kann mit einem gut definierten Fragebogen mit dieser Unklarheit umgehen. Und das ist der allererste Punkt auf der Checkliste, der Fragebogen zur Anforderungserfassung.

Fragebogen zur Anforderungserfassung

Unten finden Sie ein Fragebogenformat, dem Sie in Ihrem Projekt folgen können. Wir müssen so viele Antworten wie möglich auf diese Fragen erhalten. Es ist besser, wenn Sie einen Anruf vereinbaren, um diese Fragen zu besprechen. Stellen Sie sicher, dass der Anwendungsarchitekt oder Entwickler zusammen mit Ihnen und dem Kunden an dem Anruf teilnimmt. Das Vorhandensein zusätzlicher Personen kann Einblicke geben und Fragen aufdecken, die Sie zuvor vielleicht nicht bedacht haben. Die untenstehenden Fragen bieten Ihnen eine Roadmap, um einen effizienteren und effektiveren Lasttest zu erstellen.

<strong Nr. Thema Fragen
1 Anwendung Art der zu testenden Anwendung (zum Beispiel Webanwendung/Mobilanwendung usw.).
2 Anwendungsarchitektur und Technologie/Plattform.
3 Verwendete Lastverteilungstechnik.
4 Kommunikationsprotokoll zwischen Client und Server (z. B.: HTTP/S, FTP).
5 Ziel des Leistungstests. Zu überwachende Leistungsmetriken (z. B. Reaktionszeit für jede Aktion, gleichzeitige Benutzer usw.).
6 Kritische Szenarien, die für Leistungstests berücksichtigt werden müssen.
7 Details zu geplanten Hintergrundjobs/-prozessen, falls vorhanden.
8 Verwendete Technik für das Sitzungsmanagement und Anzahl der unterstützten parallelen Sitzungen.
 
9 Kunden-SLA/Anforderungen Erwartete Anzahl gleichzeitiger Benutzer und Gesamtbenutzerbasis. Nutzerverteilung für Szenarien im Umfang.
10 SLA für alle im PT-Umfang enthaltenen Transaktionen (erwarteter Durchsatz, Reaktionszeit usw.).
11 Zu durchführende Arten von Leistungstests (Lasttest, Dauertest usw.).
 
12 System/Umgebung Details zur Testumgebung (Web/App/DB usw. mit Anzahl der Knoten). Eine produktionsähnliche Umgebung wird für die Ausführung von Leistungstests empfohlen.
13 Vergleich zwischen Produktionsumgebung und Leistungstestumgebung.
14 Ob die Anwendung während der Ausführung von Leistungstests isoliert werden soll, um Wechselwirkungen mit anderen Anwendungen zu vermeiden.
15 Details zum eingebauten Protokollierungs- oder Überwachungsmechanismus.
 
16 Sonstiges Baseline-Ergebnisse der Anwendungsleistung.
17 Derzeitige Leistungsprobleme, falls vorhanden.

Die Antworten auf diese Fragen helfen Ihnen, eine qualitätsorientierte Teststrategie/einen Testplan zu erstellen. Wenn der Kunde nicht alle Fragen beantworten kann, machen Sie sich keine Sorgen. Wir können die zu testende Anwendung immer erkunden und die Antworten finden. Wenn beispielsweise ein APM-/Log-Tool vorhanden ist, können wir gleichzeitige Benutzer, Durchsatz und Reaktionszeit aus dem Produktivsystem ableiten. Gehen Sie niemals davon aus, dass Sie erhalten, was Sie benötigen, ohne es zu erfragen.

Passendes Performance-Testtool finden

Ein Performance-Tester sollte sorgfältig das beste Performance-Testtool wählen. Es gibt viele Faktoren, die vor der Finalisierung und dem Vorschlag des Tools berücksichtigt werden müssen. Denken Sie daran, dass das Kundenbudget immer ein wichtiger Faktor bei der Auswahl des Performance-Testtools ist.

Wenn Sie ein Performance-Testtool suchen, das kostengünstig, einfach zu verwenden und eine komplette Leistungslösung bietet, sollten Sie definitiv LoadView ausprobieren. Im Vergleich zu traditionellen Lasttesttools erfordert LoadView keine kostspieligen Investitionen, langwierige Einrichtung oder Vorkenntnisse im Scripting von Frameworks. Zusätzlich bietet die Plattform mehr als 20 globale Standorte, von denen aus Lastinjektoren gestartet werden können, sodass Sie Leistungstests und Messungen aus mehreren Standorten während jedes Tests durchführen können.

Alle Arten von Leistungstests erfordern Zeit und Aufwand. Die Durchführung von Lasttests kann eine Organisation vor potenzieller Peinlichkeit bewahren, gleichzeitig rechtfertigen jedoch Tests mit kostenlosen Open-Source-Tools wie JMeter nicht immer die Investition. Um die Leistung der Website oder Anwendung aus der Perspektive des Endnutzers wirklich zu verstehen, reichen protokollbasierte Tests nicht aus. Sie müssen auch die Leistung der clientseitigen Interaktionen und Schritte messen. Hier ist ein Vergleich von LoadView mit anderen Performance-/Lasttestlösungen und warum Sie LoadView für Ihre Leistungstestanforderungen wählen sollten.

Bei langsam ladenden Websites und Anwendungen können Kunden schnell ungeduldig werden und abspringen, wenn Ihre Website/Anwendung ihre Erwartungen nicht erfüllt. Zu wissen, wie viel Ihre Website/Anwendung bewältigen kann, ist aus verschiedenen Gründen sehr wichtig, aber es gibt mehrere bedeutende Szenarien, bei denen die LoadView-Plattform unterstützen kann:

  • Anpassungsfähigkeit und Skalierbarkeit. Feststellen, warum Ihre Website oder Anwendung langsamer wird, wenn mehrere Benutzer darauf zugreifen.
  • Infrastruktur. Verstehen, welche Hardware-Upgrades ggf. erforderlich sind. Die Kosten für die Implementierung zusätzlicher Hardware und deren Wartung können eine potenzielle Ressourcenverschwendung sein.
  • Leistungsanforderungen. Ihre Website oder Anwendung kann ein paar Benutzer problemlos bewältigen, doch wie sieht es in realen Situationen aus?
  • Drittanbieterdienste. Beobachten, wie externe Dienste sich bei normalen oder sogar Spitzenlastbedingungen verhalten.

Leistungstestplan/-strategie

Sobald Sie die Kundenanforderungen gesammelt und ein geeignetes Leistungstesttool ausgewählt haben, müssen wir unseren Testplan/Teststrategie dokumentieren. Stellen Sie sicher, dass der Testplan vom Kunden genehmigt wird, bevor Sie mit irgendwelchen Leistungstests beginnen. Das ist sehr wichtig und hilft Ihnen, unnötige Probleme später zu vermeiden. Hier sind einige Punkte, die im Testplan enthalten sein sollten.

  • Leistungstestziele. Was wollen wir erreichen.
  • Projektumfang. Was ist der Umfang des Projekts, z. B. Anzahl der Skripte, Dauer des Tests usw.
  • Anwendungsarchitektur. Details zur Anwendung, z. B. App-Server, DB-Server; Sie können auch ein Architekturdiagramm einfügen, falls vorhanden.
  • Umgebungsdetails. Details zur Umgebung, die getestet wird. Es ist immer gut, eine isolierte Umgebung für Leistungstests zu haben.
  • Infrastruktureinrichtung. Anfangseinrichtung für den Leistungstest (zum Beispiel Cloud-Umgebung, Tool-Installation usw.).
  • Leistungstestansatz. Wie wir den Test durchführen. Wir sollten mit einem Basistest mit einer geringeren Benutzeranzahl beginnen und dann die Benutzeranzahl schrittweise erhöhen sowie verschiedene Testarten wie Stress, Dauertest usw. durchführen.
  • Eintritts- und Austrittskriterien. Das ist sehr wichtig. Wir sollten Leistungstests immer starten, wenn keine funktionalen Fehler vorhanden sind. Ebenso sollten wir dokumentieren, wann Leistungstests gestoppt werden können.
  • Fehlermanagement. Wir sollten die gleichen Tools und Praktiken wie der Kunde zur Erfassung von Defekten verwenden, die Leistungstests betreffen.
  • Rollen und Verantwortlichkeiten. Details zu den Stakeholdern, die an verschiedenen Aktivitäten während des Leistungstests beteiligt sind.
  • Annahmen und Risiken. Wenn es Ziele gibt, die ein Risiko für den Leistungstest darstellen, sollten diese dokumentiert werden.
  • Testdatenstrategie. Details zur Testdatenstrategie und wie diese extrahiert werden kann.
  • Testplan-Zeitplan und wichtige Liefergegenstände. Zeitplan für Scripting, Testausführung, Analyse und Lieferungen für die Kundenüberprüfung.

Der eigentliche Leistungstest beruht auf einer Kombination von Techniken. Um die erwarteten Ziele zu erreichen, müssen wir für unterschiedliche Leistungsanforderungen unterschiedliche Strategien vorbereiten. Es gibt verschiedene Metriken wie Benutzerlast, gleichzeitige Benutzer, Arbeitslastmodelle usw., die vor der Lastplanung berücksichtigt werden müssen. Wenn Sie bereits mit Arbeitslastmodellierung gearbeitet haben, haben Sie vielleicht schon von Littles Gesetz gehört. Sie sollten es erlernen und anwenden, bevor Sie einen Test planen, um die gewünschten Ergebnisse zu erzielen.

Echtzeit-Leistungsskripte/-Szenarien

Sobald wir uns mit dem Kunden auf einen Leistungsplan oder eine Strategie geeinigt haben, ist es Zeit, die Skripterstellung mit dem gewählten Leistungstesttool vorzubereiten. Die Erstellung qualitativer Skripte ist der Schlüssel zum Erfolg bei Leistungstests, und es gibt mehrere wichtige Überlegungen, die während des gesamten Prozesses zu beachten sind.

Zuerst sollten Sie stets die dokumentierten Testfallschritte beim Erstellen von Skripten befolgen, um Genauigkeit zu gewährleisten. Beginnen Sie damit, das Skript für einen einzelnen Benutzer abzuspielen und alle Anforderungen an Korrelation oder Parametrisierung zu adressieren. Parametrisierung kann Header, Cookies oder Body-Parameter umfassen. Sobald das Skript nahtlos für einen einzelnen Benutzer funktioniert, testen Sie es mit mehreren Iterationen und unterschiedlichen Benutzerdaten. Seien Sie bereit, Korrelation oder Parametrisierung anzupassen, da neue Daten zusätzliche Anforderungen aufdecken können.

In manchen Fällen erfordert das Erreichen bestimmter Anwendungsfälle das Schreiben benutzerdefinierter Codeblöcke. Zum Beispiel müssen Sie möglicherweise spezifische Antwortdaten für einen Benutzer extrahieren und für eine andere Anfrage manipulieren. Vergessen Sie zudem nicht, Denkzeiten, Abstände und Fehlerbehandlungsmechanismen basierend auf dem Arbeitslastmodell einzufügen. Die Überprüfung der Skriptfunktionalität mittels Text- oder Bildprüfungen ist ebenso wichtig, um die gewünschten Ergebnisse sicherzustellen.

Über das Scripting hinaus sollten Sie Faktoren wie das Simulieren von Cache, Cookies und variierenden Netzwerkbedingungen berücksichtigen, um realistische Szenarien abzubilden. Als Performance Engineer ist es entscheidend, realistisches Verhalten virtueller Benutzer zu erstellen. Dieser Prozess beginnt mit der genauen Erfassung von Details während der Anforderungsphase.

Wichtige Fragen sind:

  • Wie viele Benutzer interagieren insgesamt während der Geschäftszeiten mit der Anwendung?
  • Welche Aktionen führen Benutzer typischerweise aus und wie oft?
  • Wie viele Benutzer greifen während Spitzenlastzeiten auf die Anwendung zu?

Diese Antworten können durch den Fragebogen zur Anforderungserfassung oder durch Analyse statistischer Daten gewonnen werden, die mit Tools wie APM-Lösungen oder Google Analytics gesammelt wurden. Die Transaktionsanalyse ist besonders hilfreich, um kritische Geschäftstransaktionen zu identifizieren und Leistungstest-Szenarien zu entwerfen, die realweltliche Nutzung genau widerspiegeln. Wenn Sie diese Schritte berücksichtigen, sind Sie bestens gerüstet, um effektive Leistungstests durchzuführen und verlässliche Ergebnisse zu liefern.

Arbeitslastmodellierung

Wir können unser Arbeitslastmodell auf verschiedene Weisen planen. Performance Engineers sollten das Konzept von „Littles Gesetz“ erlernen und üben, bevor sie ein Arbeitslastmodell auswählen. Unten sind einige der existierenden Arbeitslastmodelle beschrieben. Der Performance Engineer sollte das Arbeitslastmodell basierend auf den aktuellen Anforderungen auswählen.

Arbeitslastmodell 1. Es ist ein einfaches Modell, bei dem die Benutzeranzahl kontinuierlich erhöht wird, während der Test fortschreitet. Beispiel: ein Benutzer pro Sekunde, bis der Test abgeschlossen ist.

Arbeitslastmodell 2. Hier wird die Benutzeranzahl als Stufe für die gesamte Testdauer erhöht. Zum Beispiel: die ersten 15 Minuten 100 Benutzer, die nächsten 15 Minuten 200 usw. Diese Art von Test ist für Dauertests geeignet.

Arbeitslastmodell 3. Dies ist das am häufigsten verwendete Modell für Leistungstests. Die Benutzerzahl wird für eine bestimmte Zeit kontinuierlich erhöht (Ramp-Up-Phase). Danach herrscht ein stabiler Zustand für eine bestimmte Dauer. Dann beginnt der Ramp-Down und der Test endet. Zum Beispiel, wenn wir 1,5 Stunden Testzeit planen, können wir 15 Minuten für das Hochfahren der Benutzer und 15 Minuten für das Herunterfahren einplanen. Der stabile Zustand dauert eine Stunde. Bei der Ergebnisanalyse berücksichtigen wir nur den stabilen Zustand.

Arbeitslastmodell 4. In diesem Modell wird die Benutzerzahl während der gesamten Dauer abrupt erhöht und verringert. Für diese Testart gibt es verschiedene Bezeichnungen wie Monkey Testing, Spike Testing usw.

Wir müssen eine umfassende Ziel- und Anforderungsliste für Leistungstests erstellen. Definieren Sie die Parameter der Leistungstests und was jeweils als Akzeptanzkriterium gilt. Wenn Sie weder die Testanforderungen noch das gewünschte Ergebnis kennen, sind Leistungstests Zeitverschwendung.

Datenerfassung

Unten sind einige sehr wichtige Metriken aufgeführt, die während der Arbeitslastmodellierung für Leistungstests beobachtet werden sollten.

Reaktionszeit: Die Reaktionszeit ist die Zeit, die der Server benötigt, um auf die Client-Anfrage zu antworten. Viele Faktoren beeinflussen die Server-Reaktionszeit. Lasttests helfen, diese Faktoren zu identifizieren und zu beseitigen, die die Reaktionszeit verschlechtern.

Mittlere Reaktionszeit: Dies ist der Durchschnittswert der Reaktionszeit für die gesamte Dauer des stabilen Zustands während eines Lasttests.

90. Perzentil der Reaktionszeit: Das 90. Perzentil bedeutet, dass 90 Prozent der Reaktionszeiten unter diesem Wert liegen. Zum Beispiel, wenn Sie 500 Anforderungen mit unterschiedlichen Reaktionszeiten hatten, ist das 90. Perzentil ein Wert, unter dem 90 Prozent aller anderen Werte liegen. Nur 10 Prozent der Reaktionszeiten liegen über diesem Wert. Das ist hilfreich, wenn einige Anfragen eine sehr lange Reaktionszeit haben und das Ergebnis der durchschnittlichen Reaktionszeit verzerren.

Anfragen pro Sekunde: Wir müssen diesen Wert mit APM-Tools oder anhand von Produktionsprotokollen ermitteln. Basierend auf der Anzahl gleichzeitiger Benutzer können wir die Anfragen pro Sekunde an den Server planen.

Speicherauslastung: Dies sind Metriken der Infrastruktur, die helfen, Engpässe aufzudecken. Zudem sollten Sie Ihre Arbeitslast möglichst in Echtzeit planen. Stellen Sie sicher, dass der Server nicht durch kontinuierliche Anfragen überlastet wird.

CPU-Auslastung: Wie beim Speicher sollten Sie diese Metriken während der Leistungstests im Auge behalten.

Fehlerrate: Wir sollten das Verhältnis von erfolgreichen zu fehlerhaften Transaktionen nachverfolgen. Die Fehlerrate sollte 2 Prozent der erfolgreichen Transaktionen nicht übersteigen. Wenn die Fehlerrate mit zunehmenden gleichzeitigen Benutzern steigt, könnte dies auf einen Engpass hinweisen.

Gleichzeitige Benutzer: Wir müssen diesen Wert mit APM-Tools oder Produktionsprotokollen herausfinden. Üblicherweise wird dieser Wert auf Basis eines typischen Geschäftstages ermittelt.

Durchsatz: Der Durchsatz zeigt die Serverkapazität, gleichzeitige Benutzer zu bewältigen. Es besteht ein direkter Zusammenhang zwischen gleichzeitigen Benutzern und Durchsatz. Der Durchsatz sollte mit steigender Benutzerzahl zunehmen. Sinkt der Durchsatz bei steigender Benutzerzahl, ist das ein Hinweis auf Engpässe.

Benutzerlastverteilung: Die Verteilung der Benutzerlast ist ein wichtiger Faktor, der beim Design der Arbeitslast berücksichtigt werden muss. Wenn wir fünf Skripte haben, die fünf verschiedene Funktionen einer Anwendung ausführen, müssen wir die Benutzerlast möglichst realistisch aufteilen, basierend auf unserer Untersuchung in der Produktion oder den APM-Tools.

Diese Metriken sind sehr wichtig bei der Planung des Arbeitslastmodells. Es gibt auch weitere Metriken, die von der Architektur und den Anforderungen der Kundenanwendung abhängen.

Checkliste für die Leistungstestumgebung (vor der Ausführung)

Das folgende Checklistenbeispiel wird üblicherweise bei unternehmensweiten End-to-End-Leistungstests verwendet, bei denen viele Systeme involviert sind. Es wird auch empfohlen, eine Umgebung-Checkliste für kleine skalierte Leistungstests zu verwenden. Die Aktivitäten ändern sich basierend auf der Anwendungsumgebung, da es große Unterschiede zwischen Anwendungen in der Cloud und Anwendungen vor Ort gibt.

Leistungstest-Checkliste

Fazit: Checkliste zur Vorbereitung auf Lasttests

Erfolgreiche Software-Leistungstests geschehen nicht zufällig. Architekten, Produktverantwortliche, Entwickler und das Leistungstestteam müssen zusammenarbeiten und die Anforderungen an Leistungstests klären, bevor die Software bewertet wird. Für einen detaillierteren Hintergrund zur LoadView-Plattform lesen Sie unseren Technischen Überblick, um zu sehen, wie Sie Ihre Leistungstests optimal nutzen können. Leistungstests sollten ein fortlaufender Prozess sein. Wenn Ihre Website oder Webanwendung wächst, müssen Sie Anpassungen vornehmen, um eine größere Benutzerbasis zu unterstützen. Jede Anwendung und jeder Test bieten immer Möglichkeiten zur Verbesserung.

Wir hoffen, dass Ihnen dieser Beitrag einen guten Einblick in die besten Praktiken für Leistungstests gegeben hat. Wenn Sie eine vollständige Demonstration der LoadView-Lösung wünschen, melden Sie sich für eine Demo mit einem Performance Engineer an. Dieser führt Sie Schritt für Schritt durch jeden Teil des Prozesses – von der Erstellung von Lasttestskripten und Testkonfiguration bis zur Testausführung und Ergebnisanalyse.

Oder melden Sie sich für die LoadView-Testversion an, um jetzt mit Lasttests zu starten. Wir geben Ihnen kostenlose Lasttests zum Einstieg! Viel Erfolg beim Lasttesten!