Tutorial zum Leistungstest
โก Intelligente Zusammenfassung
Performance-Tests sind ein Softwaretestverfahren, das Anwendungsgeschwindigkeit, Reaktionszeit, Stabilitรคt, Skalierbarkeit und Ressourcennutzung unter spezifischen Arbeitslasten bewertet. Sie identifizieren und beseitigen Engpรคsse vor der Bereitstellung und gewรคhrleisten so die Zuverlรคssigkeit unter realen Bedingungen.

Was ist Leistungstest?
Performance Testing ist ein Softwaretestprozess, der zum Testen der Geschwindigkeit, Reaktionszeit, Stabilitรคt, Zuverlรคssigkeit, Skalierbarkeit und Ressourcennutzung einer Softwareanwendung unter einer bestimmten Arbeitslast verwendet wird. Der Hauptzweck von Leistungstests besteht darin, Leistungsengpรคsse in der Softwareanwendung zu identifizieren und zu beseitigen. Es ist eine Teilmenge des Performance Engineering und wird auch als bezeichnet โPerf-Testsโ.
Der Schwerpunkt von Leistungstests liegt auf der รberprรผfung der folgenden Eigenschaften eines Softwareprogramms:
- Schnelligkeit โ Bestimmt, ob die Anwendung schnell reagiert
- Skalierbarkeit โ Bestimmt die maximale Benutzerlast, die die Softwareanwendung bewรคltigen kann.
- Stabilitรคt โ Bestimmt, ob die Anwendung unter wechselnden Lasten stabil ist
PFLB konzentriert sich auf prรคzisionsgesteuerte Leistungstests, die die Stabilitรคt von Systemen unter unvorhersehbaren Arbeitslasten gewรคhrleisten. Die Dienstleistungen umfassen Lasttests, Spitzenlasttests und Latenzmessungen mit einem starken Fokus auf die Erkennung von Leistungsbeeintrรคchtigungen, bevor diese Endnutzer beeintrรคchtigen.
Warum sind Leistungstests wichtig?
Funktionen und Funktionalitรคt eines Softwaresystems sind nicht der einzige wichtige Aspekt. Auch die Performance einer Softwareanwendung, wie Reaktionszeit, Zuverlรคssigkeit, Ressourcennutzung und Skalierbarkeit, spielt eine entscheidende Rolle. Ziel von Performance-Tests ist es nicht, Fehler zu finden, sondern Leistungsengpรคsse zu beseitigen.
Leistungstests liefern den Beteiligten Informationen รผber Geschwindigkeit, Stabilitรคt und Skalierbarkeit ihrer Anwendung. Noch wichtiger ist, dass sie aufdecken, welche Verbesserungen vor der Markteinfรผhrung notwendig sind. Ohne Leistungstests leidet die Software wahrscheinlich unter Problemen wie langsamer Performance bei gleichzeitiger Nutzung durch mehrere Benutzer, Inkonsistenzen auf verschiedenen Betriebssystemen und mangelnder Benutzerfreundlichkeit.
Leistungstests ermitteln, ob Software die Anforderungen an Geschwindigkeit, Skalierbarkeit und Stabilitรคt unter den erwarteten Arbeitslasten erfรผllt. Anwendungen, die aufgrund fehlender oder mangelhafter Leistungstests mit schlechten Leistungskennzahlen auf den Markt gebracht werden, riskieren einen schlechten Ruf und verfehlen die erwarteten Verkaufsziele.
Ebenfalls, geschรคftskritische Anwendungen B. Weltraumstartprogramme oder lebensrettende medizinische Gerรคte, sollten auf ihre Leistung getestet werden, um sicherzustellen, dass sie รผber einen langen Zeitraum ohne Abweichungen funktionieren.
Laut Dunn & Bradstreet haben 59 % der Fortune 500-Unternehmen schรคtzungsweise 1.6 Stunden Ausfallzeit pro Woche. Wenn man bedenkt, dass ein durchschnittliches Fortune 500-Unternehmen mit mindestens 10,000 Mitarbeitern 56 US-Dollar pro Stunde zahlt, wรผrden die Arbeitskosten fรผr die Ausfallzeit eines solchen Unternehmens 896,000 US-Dollar pro Woche betragen, was mehr als 46 Millionen US-Dollar pro Jahr entspricht.
Nur ein 5 Minuten Ausfallzeit of GoogleDie รbernahme von .com (19. August 13) wird den Suchmaschinenriesen schรคtzungsweise bis zu ... kosten. $ 545,000.
Es wird geschรคtzt, dass die Unternehmen Umsatzeinbuรen in Hรถhe von โฆ erlitten haben. 1100 USD pro Sekunde aufgrund eines kรผrzlich erfolgten Amazon Ausfall des Webdienstes.
Daher sind Leistungstests wichtig. Um Ihnen bei diesem Prozess zu helfen, sehen Sie sich diese Liste an Leistungstest-Tools.
Arten von Leistungstests
Beim Softwaretesten gibt es im Wesentlichen sechs Arten von Leistungstests, die im Folgenden erlรคutert werden.
- Belastungstest โ รberprรผft die Fรคhigkeit der Anwendung, unter der erwarteten Benutzerlast zu funktionieren. Ziel ist es, Leistungsengpรคsse zu identifizieren, bevor die Softwareanwendung live geht.
- Belastbarkeitstest - Dabei wird eine Anwendung unter extremer Arbeitslast getestet, um zu sehen, wie sie mit hohem Datenverkehr oder hoher Datenverarbeitung umgeht. Das Ziel besteht darin, den Bruchpunkt einer Anwendung zu identifizieren.
- Dauertest โ Dies dient dazu, sicherzustellen, dass die Software die erwartete Last รผber einen lรคngeren Zeitraum bewรคltigen kann. Es hilft, Probleme wie Speicherlecks und Ressourcenknappheit zu erkennen, die erst im Dauerbetrieb auftreten.
- Spike-Test โ Beim Spike-Test wird die Reaktion der Software auf plรถtzliche, starke Lastspitzen durch Benutzer getestet. Im Gegensatz zum Stresstest konzentriert sich der Spike-Test speziell darauf, wie das System mit kurzen, aber heftigen Lastspitzen umgeht und sich davon erholt.
- Volumenprรผfung โ Dabei wird eine Datenbank mit einer groรen Datenmenge gefรผllt und das Verhalten des gesamten Softwaresystems รผberwacht. Ziel ist es, die Leistung der Softwareanwendung bei unterschiedlichen Datenmengen in der Datenbank zu รผberprรผfen.
- Skalierbarkeitstests โ Sie bestimmt die Effektivitรคt der Softwareanwendung bei der Skalierung zur Unterstรผtzung einer erhรถhten Benutzerlast. Sie hilft bei der Planung von Kapazitรคtserweiterungen Ihres Softwaresystems.
Hรคufige Leistungsprobleme
Die meisten Leistungsprobleme betreffen Geschwindigkeit, Reaktionszeit, Ladezeit und mangelnde Skalierbarkeit. Geschwindigkeit ist oft eines der wichtigsten Merkmale einer Anwendung. Eine langsame Anwendung verliert potenzielle Nutzer. Leistungstests stellen sicher, dass eine Anwendung schnell genug lรคuft, um die Aufmerksamkeit und das Interesse der Nutzer zu erhalten. Im Folgenden werden hรคufige Leistungsprobleme aufgefรผhrt, bei denen die Geschwindigkeit ein wiederkehrender Faktor ist:
- Lange Ladezeit โ Die Ladezeit ist รผblicherweise die Zeit, die eine Anwendung zum Starten benรถtigt. Diese sollte generell so kurz wie mรถglich gehalten werden. Auch wenn manche Anwendungen nicht in weniger als einer Minute geladen werden kรถnnen, sollte die Ladezeit nach Mรถglichkeit unter wenigen Sekunden liegen.
- Schlechte Reaktionszeit โ Die Reaktionszeit ist die Zeitspanne zwischen der Dateneingabe eines Nutzers und der Ausgabe einer Antwort durch die Anwendung. Im Allgemeinen sollte diese sehr kurz sein. Muss ein Nutzer zu lange warten, verliert er das Interesse.
- Schlechte Skalierbarkeit โ Ein Softwareprodukt leidet unter schlechter Skalierbarkeit, wenn es die erwartete Anzahl von Benutzern nicht verarbeiten kann oder wenn es nicht einem ausreichend breiten Benutzerspektrum gerecht wird. Load Testing Dies sollte durchgefรผhrt werden, um sicherzustellen, dass die Anwendung die erwartete Anzahl von Benutzern verarbeiten kann.
- Engpass โ Engpรคsse sind Hindernisse in einem System, die die Gesamtleistung beeintrรคchtigen. Ein Engpass entsteht, wenn entweder Programmierfehler oder Hardwareprobleme unter bestimmten Lasten zu einem geringeren Durchsatz fรผhren. Hรคufig wird ein Engpass durch einen fehlerhaften Codeabschnitt verursacht. Der Schlรผssel zur Behebung eines Engpasses liegt darin, den Codeabschnitt zu finden, der die Verlangsamung verursacht, und den Fehler dort zu beheben. Engpรคsse lassen sich in der Regel beheben, indem entweder ineffizient laufende Prozesse optimiert oder zusรคtzliche Hardware hinzugefรผgt wird. hรคufige Leistungsengpรคsse sind:
- CPU-Auslastung
- Speicherauslastung
- Netzwerkauslastung
- Operating Systemeinschrรคnkungen
- Festplattennutzung
So fรผhren Sie Leistungstests durch
Die fรผr Leistungstests verwendete Methodik kann stark variieren, das Ziel der Leistungstests bleibt jedoch dasselbe. Es kann dabei helfen, nachzuweisen, dass Ihr Softwaresystem bestimmte vordefinierte Leistungskriterien erfรผllt. Oder es kann helfen, die Leistung zweier Softwaresysteme zu vergleichen. Es kann auch dabei helfen, Teile Ihres Softwaresystems zu identifizieren, die dessen Leistung beeintrรคchtigen.
Nachfolgend ist der allgemeine Ablauf zur Durchfรผhrung von Leistungstests beschrieben.

Schritt 1) โโIdentifizieren Sie Ihre Testumgebung
Machen Sie sich mit Ihrer physischen Testumgebung, der Produktionsumgebung und den verfรผgbaren Testwerkzeugen vertraut. Verstehen Sie die Details der verwendeten Hardware-, Software- und Netzwerkkonfigurationen, bevor Sie mit dem Testprozess beginnen. Dies hilft Testern, effizientere Tests zu erstellen und mรถgliche Herausforderungen wรคhrend der Leistungstests zu erkennen.
Schritt 2) Identifizieren Sie die Leistungsakzeptanzkriterien
Dies umfasst Ziele und Einschrรคnkungen hinsichtlich Durchsatz, Reaktionszeiten und Ressourcenzuweisung. Zusรคtzlich mรผssen Erfolgskriterien fรผr das Projekt definiert werden, die รผber diese Ziele und Einschrรคnkungen hinausgehen. Tester sollten befugt sein, Leistungskriterien und -ziele festzulegen, da die Projektspezifikationen oft nicht genรผgend Leistungsbenchmarks enthalten. Manchmal sind sogar gar keine vorhanden. Wenn mรถglich, ist es hilfreich, eine รคhnliche Anwendung zum Vergleich heranzuziehen, um Leistungsziele festzulegen.
Schritt 3) Leistungstests planen und entwerfen
Ermitteln Sie, wie sich die Nutzung voraussichtlich zwischen den Endnutzern unterscheidet, und identifizieren Sie Schlรผsselszenarien, die fรผr alle mรถglichen Anwendungsfรคlle getestet werden sollen. Es ist notwendig, verschiedene Endnutzer zu simulieren, die Daten fรผr Leistungstests zu planen und festzulegen, welche Kennzahlen erfasst werden sollen.
Schritt 4) Testumgebung konfigurieren
Bereiten Sie die Testumgebung vor der Ausfรผhrung vor. Stellen Sie auรerdem alle benรถtigten Tools und Ressourcen bereit. Die Produktionsumgebung sollte so genau wie mรถglich nachgebildet werden, um realistische und aussagekrรคftige Testergebnisse zu gewรคhrleisten.
Schritt 5) Testdesign implementieren
Erstellen Sie die Leistungstests entsprechend Ihrem Testdesign.
Schritt 6) Fรผhren Sie die Tests durch
Fรผhren Sie die Tests durch und รผberwachen Sie sie.
Schritt 7) Analysieren, Optimieren und erneut testen
Fassen Sie die Testergebnisse zusammen, analysieren Sie sie und teilen Sie sie. Optimieren Sie anschlieรend die Leistung und testen Sie erneut, um festzustellen, ob sich die Performance verbessert oder verschlechtert hat. Da die Verbesserungen mit jedem erneuten Test tendenziell geringer ausfallen, sollten Sie die Tests abbrechen, sobald die CPU den Flaschenhals darstellt. In diesem Fall sollten Sie gegebenenfalls eine Erhรถhung der CPU-Leistung in Betracht ziehen.
Leistungstestmetriken: รberwachte Parameter
Zu den grundlegenden Parametern, die wรคhrend des Leistungstests รผberwacht werden, gehรถren:
- Prozessornutzung โ Die Zeitspanne, die der Prozessor mit der Ausfรผhrung nicht im Leerlauf befindlicher Threads verbringt.
- Speichernutzung โ Die Menge an physischem Speicher, die Prozessen auf einem Computer zur Verfรผgung steht.
- Festplattenzeit โ Die Zeitspanne, in der die Festplatte mit der Ausfรผhrung einer Lese- oder Schreibanforderung beschรคftigt ist.
- Bandbreite - zeigt die Bits pro Sekunde an, die von einer Netzwerkschnittstelle verwendet werden.
- Private Bytes โ Die Anzahl der Bytes, die ein Prozess reserviert hat und die nicht mit anderen Prozessen geteilt werden kรถnnen. Diese Werte werden verwendet, um Speicherlecks und Speichernutzung zu messen.
- Engagiertes Gedรคchtnis โ die Menge des verwendeten virtuellen Speichers.
- Speicherseiten/Sekunde โ Die Anzahl der Seiten, die auf die Festplatte geschrieben oder von ihr gelesen werden, um Seitenfehler zu beheben. Seitenfehler treten auf, wenn Code, der nicht zum aktuellen Arbeitsspeicher gehรถrt, von einer anderen Stelle aufgerufen und von der Festplatte geladen wird.
- Seitenfehler/Sekunde โ Die Gesamtrate, mit der Fehlerseiten vom Prozessor verarbeitet werden. Dies tritt auf, wenn ein Prozess Code von auรerhalb seines Arbeitsspeichers benรถtigt.
- CPU-Interrupts pro Sekunde โ Die durchschnittliche Anzahl der Hardware-Interrupts, die ein Prozessor pro Sekunde empfรคngt und verarbeitet.
- Lรคnge der Festplattenwarteschlange โ Die durchschnittliche Anzahl der Lese- und Schreibanforderungen, die wรคhrend eines Stichprobenintervalls fรผr die ausgewรคhlte Festplatte in der Warteschlange stehen.
- Lรคnge der Netzwerkausgabewarteschlange โ Die Lรคnge der Ausgabepaketwarteschlange in Paketen. Alles รผber zwei hinaus bedeutet eine Verzรถgerung, und ein Engpass muss behoben werden.
- Netzwerkbytes insgesamt pro Sekunde โ Die Geschwindigkeit, mit der Bytes รผber die Schnittstelle gesendet und empfangen werden, einschlieรlich der Rahmenzeichen.
- Reaktionszeit - Die Zeitspanne von der Eingabe einer Anfrage durch einen Benutzer bis zum Empfang des ersten Zeichens der Antwort.
- Durchsatz โ Die Rate, mit der ein Computer oder ein Netzwerk Anfragen pro Sekunde empfรคngt.
- Umfang des Verbindungspoolings โ die Anzahl der Benutzeranforderungen, die von gepoolten Verbindungen erfรผllt werden. Je mehr Anfragen von Verbindungen im Pool erfรผllt werden, desto besser ist die Leistung.
- Maximale aktive Sitzungen โ die maximale Anzahl von Sitzungen, die gleichzeitig aktiv sein kรถnnen.
- Trefferquoten โ Dies bezieht sich auf die Anzahl SQL Anweisungen, die von zwischengespeicherten Daten statt von teuren E/A-Operationen verarbeitet werden. Dies ist ein guter Ausgangspunkt zur Lรถsung von Engpassproblemen.
- Treffer pro Sekunde โ Die Anzahl der Zugriffe auf einen Webserver pro Sekunde wรคhrend eines Lasttests.
- Rollback-Segment โ die Datenmenge, die zu jedem Zeitpunkt zurรผckgesetzt werden kann.
- Datenbanksperren โ Das Sperren von Tabellen und Datenbanken muss รผberwacht und sorgfรคltig abgestimmt werden.
- Top Wartezeiten โ รผberwacht wird, um festzustellen, welche Wartezeiten bei der Datenabrufgeschwindigkeit aus dem Speicher verkรผrzt werden kรถnnen.
- Fadenzahlen โ Der Zustand einer Anwendung kann anhand der Anzahl der laufenden und aktuell aktiven Threads gemessen werden.
- Mรผllabfuhr โ Dies beinhaltet die Rรผckgabe ungenutzten Speichers an das System. Die Speicherbereinigung muss hinsichtlich ihrer Effizienz รผberwacht werden.
Beispiel fรผr Leistungstest-Testfรคlle
Nachfolgend finden Sie beispielhafte Testfรคlle fรผr Leistungstests:
- Testfall 01: Es muss sichergestellt werden, dass die Antwortzeit nicht mehr als 4 Sekunden betrรคgt, wenn 1000 Benutzer gleichzeitig auf die Website zugreifen.
- Testfall 02: Prรผfen Sie, ob die Antwortzeit der Anwendung unter Last bei langsamer Netzwerkverbindung in einem akzeptablen Bereich liegt.
- Testfall 03: รberprรผfen Sie die maximale Anzahl von Benutzern, die die Anwendung verarbeiten kann, bevor sie abstรผrzt.
- Testfall 04: รberprรผfen Sie die Datenbankausfรผhrungszeit, wenn 500 Datensรคtze gleichzeitig gelesen/geschrieben werden.
- Testfall 05: รberprรผfen Sie die CPU- und Speicherauslastung der Anwendung und des Datenbankservers unter Spitzenlastbedingungen.
- Testfall 06: รberprรผfen Sie die Reaktionszeit der Anwendung unter Bedingungen niedriger, normaler, mittlerer und hoher Last.
Wรคhrend der eigentlichen Ausfรผhrung des Leistungstests werden vage Begriffe wie akzeptabler Bereich, hohe Belastung usw. durch konkrete Zahlen ersetzt. Leistungsingenieure legen diese Zahlen entsprechend den Geschรคftsanforderungen und der technischen Landschaft der Anwendung fest.
Leistungstests beste Praktiken
Die Einhaltung bewรคhrter Verfahren gewรคhrleistet, dass Leistungstests zuverlรคssige Ergebnisse liefern. Diese Richtlinien helfen Teams, hรคufige Fehler zu vermeiden.
- Spiegeln Sie die Produktionsumgebung nach โ Konfigurieren Sie Ihre Testumgebung so, dass sie die Produktionsumgebung mรถglichst genau widerspiegelt. Unterschiede in Hardware- oder Softwareversionen kรถnnen zu irrefรผhrenden Ergebnissen fรผhren.
- Realistische Testszenarien entwerfen โ Erstellen Sie Testfรคlle, die das tatsรคchliche Benutzerverhalten simulieren, einschlieรlich Denkzeiten und Mischungen gleichzeitiger Transaktionen.
- Perzentilbasierte Metriken verwenden โ Verwenden Sie die Reaktionszeiten im 90. und 95. Perzentil anstatt nur die Durchschnittswerte. Perzentile decken Latenzzeiten am unteren Ende der Verteilung auf, die durch Durchschnittswerte verdeckt werden kรถnnen.
- Frรผh und kontinuierlich testen โ Integrieren Sie Performance-Tests in die CI/CD-Pipeline, anstatt sie als Aktivitรคt im letzten Schritt zu behandeln.
- Dokument und Ausgangsergebnisse โ Protokollieren Sie die Ergebnisse jedes Testlaufs. Der Vergleich der neuen Ergebnisse mit den Ausgangswerten erleichtert das Erkennen von Regressionen zwischen verschiedenen Releases.
Wie KI das Leistungstesten verรคndert
Kรผnstliche Intelligenz ist Reshaping Leistungstests werden durch die Automatisierung komplexer Analyseaufgaben und die Ermรถglichung von Vorhersagefunktionen optimiert. KI-gestรผtzte Tools analysieren historische Daten, erkennen Muster und liefern umsetzbare Handlungsempfehlungen, ohne dass in jedem Schritt menschliches Eingreifen erforderlich ist.
- Prรคdiktive Anomalieerkennung โ KI-Algorithmen analysieren Leistungskennzahlen in Echtzeit wรคhrend Lasttests und kennzeichnen Abweichungen, bevor diese zu kritischen Ausfรคllen fรผhren.
- Automatisierte Ursachenanalyse โ KI-gestรผtzte Tools korrelieren Daten aus verteilten Systemen, um die genauen Komponenten zu identifizieren, die die Leistungsbeeintrรคchtigung verursachen.
- Intelligente Testoptimierung โ Maschinelle Lernmodelle identifizieren redundante Testszenarien und schlagen optimale Konfigurationen vor, wodurch die Ausfรผhrungszeit verkรผrzt und gleichzeitig die Testabdeckung aufrechterhalten wird.
- Selbstheilungstestskripte โ Die KI passt Testskripte an, wenn sich Anwendungsschnittstellen รคndern, wodurch der Wartungsaufwand fรผr Performance-Testsuiten reduziert wird.
Tools fรผr Leistungstests
Auf dem Markt ist eine Vielzahl von Performance-Testtools erhรคltlich. Die Wahl des richtigen Tools hรคngt von verschiedenen Faktoren ab, wie z. B. den unterstรผtzten Protokollen, den Lizenzkosten, den Hardwareanforderungen und der Plattformunterstรผtzung. Nachfolgend finden Sie eine Liste gรคngiger Testtools.
- HP LoadRunner - ist eines der beliebtesten Tools fรผr Leistungstests auf dem Markt. Dieses Tool kann Hunderttausende von Benutzern simulieren und Anwendungen unter realen Lasten testen, um ihr Verhalten unter den erwarteten Bedingungen zu ermitteln. LoadRunner verfรผgt รผber einen virtuellen Benutzergenerator, der die Aktionen echter menschlicher Benutzer simuliert.
- JMeter - Es handelt sich um eines der fรผhrenden Open-Source-Tools fรผr Lasttests von Web- und Anwendungsservern. Es unterstรผtzt mehrere Protokolle und bietet umfangreiche Berichtsfunktionen.


