Was ist Lasttest? (Beispiele)

⚡ Intelligente Zusammenfassung

Lasttests messen das Verhalten einer Softwareanwendung bei gleichzeitigem Zugriff vieler Benutzer bis zum erwarteten Spitzenwert. Sie ermitteln die maximale Betriebskapazität, die begrenzenden Faktoren und die Frage, ob die vorhandene Infrastruktur ausreicht.

  • 👥 Kerndefinition: Ein nicht-funktionaler Test, der die erwartete maximale Benutzerlast anwendet und die Reaktion misst.
  • Wichtigste Kennzahl: Die Reaktionszeit muss quantitativ, relevant, realistisch, erreichbar und messbar sein.
  • ???? ️ Was es findet: Maximale Kapazität, Infrastrukturlücken, Datenbankbeschränkungen und Konfigurationsprobleme.
  • 📉 Last vs. Spannung: Die Belastung stoppt beim erwarteten Höchstwert; die Spannung wird absichtlich darüber hinaus erhöht, um den Bruchpunkt zu finden.
  • Werkzeugoptionen: JMeterGatling und k6 sind Open Source; LoadRunner ist die etablierte kommerzielle Wahl.
  • 📋 Voraussetzungen: Führen Sie das Programm erst aus, wenn die Anwendung funktional stabil ist, da sonst Fehler die Leistungsergebnisse verfälschen.

Was ist Lasttest?

Was ist Belastungstest?

Load Testing ist ein nicht-funktionaler Softwaretestprozess, bei dem die Leistung einer Softwareanwendung unter einer bestimmten erwarteten Belastung getestet wird. Dabei wird ermittelt, wie sich die Softwareanwendung verhält, wenn mehrere Benutzer gleichzeitig darauf zugreifen. Ziel des Belastungstests ist es, Leistungsengpässe zu beheben und vor der Bereitstellung die Stabilität und reibungslose Funktion der Softwareanwendung sicherzustellen.

Dieser Test identifiziert normalerweise –

  • Die maximale Betriebskapazität einer Anwendung
  • Stellen Sie fest, ob die aktuelle Infrastruktur zum Ausführen der Anwendung ausreicht
  • Nachhaltigkeit der Anwendung im Hinblick auf die Spitzenlast der Benutzer
  • Anzahl der gleichzeitigen Benutzer, die eine Anwendung unterstützen kann, und Skalierbarkeit, um mehr Benutzern den Zugriff darauf zu ermöglichen.

Es handelt sich um eine Art nichtfunktionaler Test. In der Softwareentwicklung werden Lasttests häufig für webbasierte Client/Server-Anwendungen – sowohl Intranet als auch Internet – verwendet.

Load Testing

Warum sind Lasttests notwendig?

Bei einigen äußerst beliebten Websites kommt es zu schwerwiegenden Ausfallzeiten, wenn sie ein enormes Verkehrsaufkommen verzeichnen. E-Commerce-Websites investieren stark in Werbekampagnen, jedoch nicht in Lasttests, um eine optimale Systemleistung sicherzustellen, wenn dieses Marketing Traffic generiert.

Beispiele für Lasttests

  • Toysrus.com konnte den durch die eigene Werbekampagne generierten Traffic nicht bewältigen und verlor dadurch sowohl das Marketingbudget als auch die angestrebten Umsätze.
  • Die Website einer Fluggesellschaft war während eines Festivalangebots nicht in der Lage, mehr als 10000 Benutzer zu bedienen.
  • Die Encyclopedia Britannica hatte den kostenlosen Zugang zu ihrer Online-Datenbank als Werbeangebot angekündigt. Sie war wochenlang nicht in der Lage, den enormen Datenverkehr zu bewältigen.

Bei vielen Websites kommt es zu verzögerten Ladezeiten, wenn sie starken Verkehr verzeichnen. Einige Fakten –

  • Die Abbruchrate steigt nach etwa 3 Sekunden Seitenladezeit rapide an, und dieser Effekt verstärkt sich bei mobilen Verbindungen.
  • Langsame Seiten kosten E-Commerce-Websites bei jedem Besuch messbare Umsätze, weshalb die Performance als betriebswirtschaftliche Kennzahl und nicht als technische Kennzahl betrachtet wird.

Warum Lasttests?

  • Lasttests geben Vertrauen in das System und seine Zuverlässigkeit und Leistung.
  • Lasttests helfen dabei, Engpässe im System bei starker Benutzerbelastung zu identifizieren, bevor sie in einer Produktionsumgebung auftreten.
  • Lasttests bieten hervorragenden Schutz vor schlechter Leistung und berücksichtigen ergänzende Strategien für das Leistungsmanagement und die Überwachung einer Produktionsumgebung.

Ziele des Lasttests

Durch Belastungstests lassen sich die folgenden Probleme identifizieren, bevor die Anwendung auf den Markt oder in die Produktion gebracht wird:

  • Reaktionszeit für jede Transaktion
  • Leistung von Systemkomponenten unter verschiedenen Belastungen
  • Leistung von Datenbankkomponenten unter verschiedenen Lasten
  • Netzwerkverzögerung zwischen dem Client und dem Server
  • Probleme beim Softwaredesign
  • Serverkonfigurationsprobleme wie ein Webserver, Anwendungsserver, Datenbankserver usw.
  • Probleme mit Hardwareeinschränkungen wie CPU-Maximierung, Speicherbeschränkungen, Netzwerkengpass usw.

Durch Lasttests wird ermittelt, ob das System einer Feinabstimmung bedarf oder Änderungen an Hardware und Software erforderlich sind, um die Leistung zu verbessern. Um Auslastungstests effektiv durchzuführen, können Sie verschiedene verwenden Leistungstest-Tools die Ihnen zur Verfügung stehen, um Ihnen bei der Identifizierung von Verbesserungspotenzialen zu helfen.

Voraussetzungen für Lasttests

Die wichtigste Messgröße für Lasttests ist die Antwortzeit. Bevor Sie mit dem Lasttest beginnen, müssen Sie Folgendes bestimmen:

  • Ob die Reaktionszeit bereits gemessen und verglichen wird – Quantitativ
  • Ob die Reaktionszeit auf den Geschäftsprozess anwendbar ist – Relevant
  • Ob die Reaktionszeit vertretbar ist – Realistisch
  • Ob die Reaktionszeit erreichbar ist – erreichbar
  • Ob die Reaktionszeit mit einem Werkzeug oder einer Stoppuhr messbar ist – messbar

Umgebungseinrichtung vor dem Lasttest

Hardware-Plattform Software-Konfiguration
  • Servermaschinen
  • Prozessoren
  • Memory
  • Festplattenspeicherplatz
  • Maschinenkonfiguration laden
  • Netzwerkkonfiguration
  • Betriebssystem
  • Server-Software

Lastteststrategien

Es gibt viele Möglichkeiten, Lasttests durchzuführen. Im Folgenden finden Sie einige Lastteststrategien:

Strategien des Lasttests

  • Manueller Lasttest: Dies ist eine der Strategien zur Durchführung von Lasttests, sie liefert jedoch keine wiederholbaren Ergebnisse, kann keine messbaren Belastungsniveaus für eine Anwendung liefern und ist ein Prozess, der nicht koordiniert werden kann.
  • Eigenentwickelte Lasttest-Tools: Eine Organisation, die sich der Bedeutung von Lasttests bewusst ist, kann ihre eigenen Tools zur Durchführung von Lasttests entwickeln.
  • Open-Source-Lasttest-Tools: Es gibt mehrere Lasttest-Tools, die als Open Source verfügbar sind und kostenlos sind. Sie sind vielleicht nicht so anspruchsvoll wie ihre kostenpflichtigen Gegenstücke, aber wenn Sie ein begrenztes Budget haben, sind sie die beste Wahl.
  • Lasttest-Tools der Enterprise-Klasse: Sie verfügen normalerweise über eine Aufnahme-/Wiedergabefunktion. Sie unterstützen eine Vielzahl von Protokollen. Sie können eine außergewöhnlich große Anzahl von Benutzern simulieren.

So führen Sie Lasttests durch

Der Auslastungstestprozess kann wie folgt kurz beschrieben werden:

  1. Erstellen Sie eine dedizierte Test Umgebung für Belastungstests
  2. Definieren Sie die Lasttestszenarien
  3. Bestimmen Sie Lasttesttransaktionen für eine Anwendung
    • Bereiten Sie Daten für jede Transaktion vor
    • Die Anzahl der Benutzer, die auf das System zugreifen, muss vorhergesagt werden
    • Verbindungsgeschwindigkeiten ermitteln. Einige Benutzer sind möglicherweise über Mietleitungen verbunden, während andere möglicherweise eine Einwahlverbindung verwenden
    • Ermitteln Sie die verschiedenen von den Benutzern verwendeten Browser und Betriebssysteme 
    • Eine Konfiguration aller Server wie Web-, Anwendungs- und DB-Server
  4. Ausführung und Überwachung von Testszenarien. Sammeln verschiedener Kennzahlen
  5. Analysieren Sie die Ergebnisse. Empfehlungen geben
  6. Feinabstimmung des Systems
  7. Erneut testen

Richtlinien für Lasttests

Richtlinien für Lasttests

  1. Lasttests sollten geplant werden, sobald die Anwendung funktionsstabil ist.
  2. Im Datenpool sollte eine große Anzahl eindeutiger Daten bereitstehen
  3. Die Anzahl der Benutzer sollte für jedes Szenario oder Skript festgelegt werden
  4. Vermeiden Sie die Erstellung detaillierter Protokolle, um Speicherplatz auf der Festplatte zu sparen
  5. Vermeiden Sie das Herunterladen von Bildern auf der Website
  6. Bei der Ausführung von Lasttest-Testfällen sollte die Konsistenz der Antwortzeit über den verstrichenen Zeitraum protokolliert und mit verschiedenen Testläufen verglichen werden.

Unterschied zwischen Last- und Stresstests

Load Testing Belastbarkeitstest
Lasttests identifizieren die Engpässe im System unter verschiedenen Arbeitslasten und prüfen, wie das System reagiert, wenn die Last allmählich erhöht wird Belastbarkeitstest Bestimmt den Bruchpunkt des Systems, um den maximalen Punkt anzuzeigen, nach dem es bricht.
Um die Obergrenze des Systems zu erkennen, legen Sie das SLA der App fest und prüfen Sie, wie das System eine hohe Belastung bewältigen kann. Um herauszufinden, wie sich das System unter extremen Belastungen verhält und wie es sich nach einem Ausfall erholt.
Das Hauptziel von Lasttests besteht darin, eine erhöhte Last für eine Webanwendung zu erzeugen. Durch Stresstests soll sichergestellt werden, dass die Server bei plötzlicher hoher Auslastung über einen längeren Zeitraum nicht abstürzen.
Die Attribute, die bei einem Lasttest überprüft werden, sind Spitzenleistung, Serveranzahl und Antwortzeit. Diese Art von Tests überprüft die Stabilität, die Reaktionszeit usw.
Bei Belastungstests ist die Belastungsgrenze ein Schwellenwert für einen Bruch. Bei Stresstests liegt die Belastungsgrenze oberhalb der Bruchschwelle.

Unterschied zwischen Funktions- und Lasttests

Funktionsprüfung Load Testing
Ergebnisse von Funktionstests sind leicht vorhersehbar, da wir die richtigen Schritte und Voraussetzungen definiert haben Ergebnisse von Belastungstests sind unvorhersehbar
Die Ergebnisse der Funktionstests variieren geringfügig Die Ergebnisse der Belastungstests variieren drastisch
Häufigkeit der Ausführung Funktionsprüfung wird hoch sein Die Häufigkeit der Ausführung von Lasttests wird gering sein
Ergebnisse von Funktionstests sind abhängig von den Testdaten Der Lasttest hängt von der Anzahl der Benutzer ab.

Testtools laden

LoadRunner

LoadRunner, ursprünglich von HP und jetzt Teil von OpenText Nach der Übernahme durch Micro Focus testet das Programm Anwendungen unter normaler und Spitzenlast. Es erzeugt Last durch virtuelle Benutzer, die realen Netzwerkverkehr simulieren, und stellt die Ergebnisse grafisch dar.

Lesen Sie mehr im LoadRunner-Tutorial.

Apache JMeter

Ein Open Source Java Dieses Tool ist die am weitesten verbreitete kostenlose Option. Es unterstützt HTTP, JDBC, JMS, FTP und mehr, speichert Testpläne als XML und lässt sich in CI-Pipelines integrieren. Siehe die JMeter Lernprogramm für eine Schritt-für-Schritt-Anleitung.

Gatling

Ein Open-Source-Tool, dessen Tests als Code in Scala geschrieben sind oder JavaEs bewältigt hohe Parallelität auf einfacher Hardware und erstellt detaillierte HTML-Berichte, was für Teams geeignet ist, die versionskontrollierte Testskripte bevorzugen.

k6

Ein Open-Source-Tool mit in geschriebenen Tests JavaDieses Skript wurde für die Durchführung von Performance-Tests durch Entwickler innerhalb einer CI-Pipeline und nicht als separate QA-Aktivität konzipiert.

Auswahl eines Werkzeugs

Pick JMeter Für eine möglichst breite Protokollabdeckung ohne zusätzliche Kosten empfiehlt sich Gatling oder k6, wenn das Team die Tests zusammen mit der Anwendung in der Quellcodeverwaltung speichern möchte, sowie ein kommerzielles Tool wie LoadRunner, wenn die Unterstützung von Unternehmensprotokollen und der Support des Anbieters die Lizenz rechtfertigen.

Vorteile und Nachteile von Lasttests

Im Folgenden sind die Vorteile von Belastungstests aufgeführt:

  • Identifizierung von Leistungsengpässen vor der Produktion
  • Verbessert die Skalierbarkeit des Systems
  • Minimieren Sie das Risiko im Zusammenhang mit Systemausfallzeiten
  • Reduzierte Ausfallkosten
  • Steigerung der Kundenzufriedenheit

Nachteile von Lasttests:

  • Die meisten Tools erfordern Programmierkenntnisse, um realistische Szenarien zu skripten.
  • Tools können teuer sein, da die Preisgestaltung von der Anzahl der unterstützten virtuellen Benutzer abhängt.

Wichtige Kennzahlen, die während eines Lasttests erfasst werden sollten

Im Abschnitt zu den Voraussetzungen wird die Reaktionszeit als wichtigste Kennzahl festgelegt. In der Praxis benötigt ein Lasttestbericht sechsstellige Werte, da die Reaktionszeit allein nicht Aufschluss darüber gibt, warum ein System langsamer geworden ist.

Metrisch Was es dir sagt Warnschild
Durchschnittliche Reaktionszeit Die typische Benutzererfahrung Steigt mit zunehmender Last
95. Perzentil der Reaktionszeit Die Erfahrungen der langsamsten Nutzer Weit über dem Durchschnitt
Durchsatz Anfragen pro Sekunde erfolgreich bearbeitet Abflachung oder Absinken bei steigender Last
Fehlerrate Anteil fehlgeschlagener oder abgelaufener Anfragen Jeder Anstieg über den vereinbarten Schwellenwert hinaus
Gleichzeitige Benutzer Tatsächliche simultane Sitzungen erreicht Niedriger als im Szenario vorgesehen
Serverressourcennutzung CPU-, Speicher-, Festplatten- und Netzwerkreserve Jede Ressource, die über etwa 80 Prozent liegt

Lesedurchsatz und Antwortzeit zusammen. Eine steigende Reaktionszeit bei steigendem Durchsatz bedeutet lediglich, dass das System stärker ausgelastet ist. fallenden Der Durchsatzabfall bedeutet, dass die Kapazitätsgrenze erreicht ist und nun Aufträge verloren gehen. Genau diesen Punkt soll der Test ermitteln.

Geben Sie niemals nur den Durchschnittswert an. Ein Durchschnittswert von 900 ms mit einem 95. Perzentil von 1.1 Sekunden beschreibt ein konsistentes System. Derselbe Durchschnittswert mit einem 95. Perzentil von 11 Sekunden bedeutet hingegen, dass jeder zwanzigste Nutzer eine inakzeptable Erfahrung macht, die durch den Durchschnittswert verschleiert wird.

Wie sich dieser Test im Vergleich zu anderen Leistungstests schlägt

Bei Leistungstests handelt es sich um eine Gruppe von Tests, die sich in der Form der angewendeten Last unterscheiden, weshalb sie so leicht verwechselt werden können.

Testtyp Was erhöht sich Fragen, die es beantwortet
Lastprüfung Gleichzeitige Nutzer bis zum erwarteten Spitzenwert Werden die Zielvorgaben auch bei normalem Spitzenverkehr erreicht?
Volumentest In der Datenbank gespeicherte Daten Kommt es auch mit wachsenden Datensätzen zurecht?
Belastbarkeitstest Überlastung bis zum Versagen Wo geht es kaputt und wie?
Spike-Test Laden, sofort und extrem Überlebt es einen Schock und kann es sich davon erholen?
Dauertest Dauer bei normaler Last Verschlechtert sich die Leistung im Laufe der Zeit?
Soak-Test Dauer, Überwachungsressourcen Gibt es Speicher- oder Handle-Lecks?
Stabilitätstests Unterschiedliche Bedingungen Bleibt es auch unter veränderten Bedingungen zuverlässig?

Die hier entscheidende Unterscheidung: Volumentests skalieren die Daten, Lasttests skalieren die Benutzer. Ein Bericht, der bei zehntausend Zeilen zwei Sekunden und bei zehn Millionen Zeilen zwei Minuten benötigt, hat ein Volumenproblem, kein Lastproblem, und auch zusätzliche Serverkapazität wird daran nichts ändern.

Häufig gestellte Fragen

Bei Lasttests wird die erwartete Spitzenlast angewendet und überprüft, ob die Zielvorgaben erreicht werden. Stresstests überschreiten bewusst die Kapazität, um die Belastungsgrenze zu ermitteln und zu bestätigen, dass das System ausfällt und sich anschließend ordnungsgemäß erholt.

Sobald die Anwendung funktional stabil ist und ein entdeckter Engpass noch behoben werden kann, sollte sie erst in der letzten Woche getestet werden, da dann keine Zeit mehr bleibt, auf die gefundenen Probleme zu reagieren.

JMeterDa es kostenlos ist, die meisten Protokolle unterstützt und über die umfangreichste Dokumentation verfügt, empfiehlt sich Gatling oder k6. Wenn das Team Tests bevorzugt, die als versionskontrollierter Code geschrieben werden, sollte man auf Gatling oder k6 umsteigen.

Die KI leitet realistische Lastprofile aus den Produktionsdaten ab, erkennt automatisch Anomalien in den Ergebnissen und prognostiziert, welche Codeänderungen die Leistung wahrscheinlich beeinträchtigen werden, bevor ein Lauf geplant wird.

Ja. KI-Tools wandeln aufgezeichnete Nutzerabläufe oder API-Spezifikationen in ausführbare Skripte um. Überprüfen Sie die generierten Denkzeiten und die Datenparametrisierung, da unrealistische Werte zu irreführenden Ergebnissen führen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: