Was ist Skalierbarkeitstest? Lernen Sie mit Beispielen
โก Intelligente Zusammenfassung
Skalierbarkeitstests messen, wie sich eine Anwendung verhรคlt, wenn die Benutzerlast, das Datenvolumen oder die Transaktionsrate steigen oder fallen. Sie zeigen den genauen Punkt auf, an dem die Leistung nicht mehr skaliert, und identifizieren den dafรผr verantwortlichen Engpass.
Was ist Skalierbarkeitstest?
Skalierbarkeitstests Skalierbarkeitstests sind eine nicht-funktionale Testmethode, die die Leistungsfรคhigkeit eines Systems oder Netzwerks bei steigender oder sinkender Anzahl von Benutzeranfragen misst. Ziel dieser Tests ist es, sicherzustellen, dass das System einen prognostizierten Anstieg des Benutzerverkehrs, des Datenvolumens und der Transaktionshรคufigkeit bewรคltigen kann. Sie prรผfen die Fรคhigkeit des Systems, der wachsenden Nachfrage gerecht zu werden.
Skalierbarkeitstests sind eine Unterart von LeistungstestDaher konzentriert es sich auf das Verhalten einer Anwendung, wenn diese in einem grรถรeren System eingesetzt oder unter รberlastung getestet wird. Software EngineeringSkalierbarkeitstests messen den Punkt, an dem eine Anwendung aufhรถrt zu skalieren, und ermitteln die Grรผnde dafรผr.
Warum Skalierbarkeitstests durchfรผhren?
Kapazitรคtsprobleme treten selten wรคhrend funktionaler Tests auf. Sie zeigen sich meist am umsatzstรคrksten Handelstag des Jahres, beim Start einer Marketingkampagne oder wenn ein Datensatz, der zwei Jahre lang unauffรคllig gewachsen ist, plรถtzlich jede Abfrage verlangsamt. Skalierbarkeitstests decken diese Grenzen zunรคchst in einer kontrollierten Umgebung auf. Konkret helfen sie Ihnen dabei:
- Ermitteln Sie, wie die Anwendung mit zunehmender Arbeitslast skaliert und wo diese Kurve abflacht.
- Ermitteln Sie die maximale Anzahl gleichzeitiger Benutzer fรผr die Webanwendung, bevor die Antwortzeiten inakzeptabel werden.
- Ermitteln Sie die clientseitige Leistungsminderung und die Benutzererfahrung unter Last, z. B. langsame Bildschirmdarstellung.
- Ermitteln Sie die Robustheit und Leistungseinbuรen auf Serverseite, einschlieรlich CPU-Auslastung, Speicherlecks und Erschรถpfung des Verbindungspools.
Am einfachsten lรคsst sich der Zusammenhang als Kurve veranschaulichen: Der Durchsatz steigt mit der zusรคtzlichen Last, bis eine Ressource gesรคttigt ist; danach verlรคngern zusรคtzliche Benutzer nur noch die Warteschlange.
Arten von Skalierbarkeitstests
Skalierbarkeit ist keine einheitliche Eigenschaft, daher umfasst ein Testplan รผblicherweise mehrere Dimensionen. Die vier unten aufgefรผhrten Typen werden von den meisten Teams gemessen, wobei die ersten beiden die Struktur der Testumgebung selbst bestimmen.
| Typ | Was wird skaliert? | Was der Test beweist |
|---|---|---|
| Vertikale Skalierbarkeit (vergrรถรern) | CPU, Arbeitsspeicher oder Speicherplatz wurden einem einzelnen Server hinzugefรผgt. | Wie viel zusรคtzliche Last eine aufgerรผstete Maschine aufnimmt und wo die maximale Auslastung eines einzelnen Knotens liegt |
| Horizontale Skalierbarkeit (verkleinern) | Zusรคtzliche Server, Container oder Knoten hinter einem Load Balancer | Ob der Durchsatz annรคhernd proportional zur Anzahl der hinzugefรผgten Knoten steigt oder ob gemeinsam genutzte Ressourcen ihn begrenzen |
| Funktionale Skalierbarkeit | Neue Funktionen, Module oder Dienste | Ob zusรคtzliche Funktionen integriert werden kรถnnen, ohne bestehende Transaktionen zu beeintrรคchtigen |
| Administrative Skalierbarkeit | Benutzer, Mandanten, Teams oder Umgebungen zu verwalten | Ob Onboarding, Berechtigungen und รberwachung auch bei wachsendem Unternehmen noch praktikabel bleiben. |
Vertikale Skalierung ist einfacher, da sich die Architektur selten รคndert, doch stรถรt jede einzelne Maschine an ihre Grenzen. Horizontale Skalierung beseitigt diese Grenzen und verbessert die Fehlertoleranz, allerdings auf Kosten von Netzwerklatenz, Datenkonsistenz und Koordinationsaufwand โ Faktoren, die im Test gemessen und nicht nur angenommen werden dรผrfen.
Was beim Skalierbarkeitstest geprรผft werden sollte
Skalierbarkeit wird anhand von Messwerten, nicht von subjektiven Eindrรผcken, beurteilt. Erfassen Sie die folgenden Attribute bei jedem Ladeschritt, damit der Trend und nicht nur das Endergebnis sichtbar wird.
| Attribut | Was es dir sagt |
|---|---|
| Reaktionszeit | Die Zeitspanne zwischen einer Benutzeranfrage und der Systemantwort sollte sich bei steigender Anzahl gleichzeitiger Anfragen nicht verรคndern. |
| Bildschirmรผbergang | Wie schnell eine Seite oder Ansicht unter Last zur nรคchsten wechselt |
| Durchsatz | Anzahl der pro Zeiteinheit verarbeiteten Anfragen; ein Plateau markiert die Skalierbarkeitsgrenze |
| Zeitmessungen | Sitzungszeit, Neustartzeit, Druckzeit, Transaktionszeit und Aufgabenausfรผhrungszeit |
| Leistung im Verhรคltnis zur Benutzerzahl | Wie sich die einzelnen Kennzahlen verรคndern, wenn die Anzahl gleichzeitiger Nutzer schrittweise erhรถht wird |
| Tarife anfragen | Anfragen pro Sekunde, Transaktionen pro Sekunde und Treffer pro Sekunde |
| Netzwerknutzung | Bandbreitenverbrauch und Paketlatenz zwischen den Ebenen |
| CPU- und Speicherauslastung | Ressourcenkosten pro Transaktion; ein stetig steigender Wert deutet oft auf ein Leck hin. |
| Webserver-Zรคhler | Anfragen und Antworten pro Sekunde, Warteschlangenlรคnge und abgelehnte Verbindungen |
| Leistung unter Last | Kombiniertes Verhalten, sobald alle Kennzahlen gleichzeitig zum Spitzenwert erfasst werden. |
Teststrategie fรผr Skalierbarkeitstests
Die Teststrategie fรผr Skalierbarkeitstests unterscheidet sich je nach Art der zu testenden Anwendung. Wenn eine Anwendung auf eine DatenbankZu den Testparametern gehรถren unter anderem die Grรถรe der Datenbank im Verhรคltnis zur Anzahl der Benutzer.
Voraussetzungen fรผr Skalierbarkeitstests
- Lastverteilungsfรคhigkeit โ Prรผfen Sie, ob das Lasttesttool es ermรถglicht, die Last von mehreren Maschinen zu erzeugen und von einem zentralen Punkt aus zu steuern.
- Betriebssystem โ รberprรผfen Sie, was Betriebssysteme Die Lastgenerierungsagenten und der Lasttest-Master laufen unter.
- Prozessor โ Prรผfen Sie, welcher CPU-Typ fรผr den virtuellen Benutzeragenten und den Lasttestmaster erforderlich ist.
- Memory โ Prรผfen Sie, wie viel Speicherplatz fรผr den virtuellen Benutzeragenten und den Lasttest-Master ausreicht.
- Test Umgebung โ รberprรผfen Sie, ob die Test Umgebung Die Produktion wird so genau abgebildet, dass die Ergebnisse รผbertragbar sind.
So fรผhren Sie Skalierbarkeitstests durch
- Definieren Sie einen wiederholbaren Prozess zur Durchfรผhrung von Skalierbarkeitstests wรคhrend des gesamten Anwendungslebenszyklus.
- Bestimmen Sie die Kriterien fรผr die Skalierbarkeit
- Wรคhlen Sie die Softwaretools aus, die zum Ausfรผhren des Auslastungstests erforderlich sind
- Richten Sie die Testumgebung ein und konfigurieren Sie die Hardware, die zum Ausfรผhren von Skalierbarkeitstests erforderlich ist
- Planen Sie die Testszenarien sowie die Skalierbarkeitstests.
- Virtuelles Benutzerskript erstellen und รผberprรผfen
- Erstellen und รผberprรผfen Sie die Lasttestszenarien
- Fรผhren Sie die Tests durch
- Bewerten Sie die Ergebnisse
- Erstellen Sie die erforderlichen Berichte
Skalierbarkeitstestplan
Bevor Sie die eigentlichen Tests erstellen, entwickeln Sie einen detaillierten Testplan. Dies ist ein wichtiger Schritt, um sicherzustellen, dass der Test den Anwendungsanforderungen entspricht.
Im Folgenden sind die Attribute fรผr die Erstellung eines wohldefinierten Versuchsplan fรผr Skalierbarkeitstests.
- Schritte fรผr SkripteDas Testskript sollte detaillierte Schritte enthalten, die genau die Aktionen festlegen, die ein Benutzer ausfรผhren wรผrde.
- LaufzeitdatenDer Testplan sollte alle Laufzeitdaten ermitteln, die fรผr die Interaktion mit der Anwendung erforderlich sind.
- Datengesteuerte TestsWenn die Skripte zur Laufzeit unterschiedliche Daten benรถtigen, mรผssen Sie alle Felder kennen, die diese Daten benรถtigen.
Beispiel fรผr Skalierbarkeitstests
Stellen Sie sich einen Online-Shop vor, der wรคhrend eines saisonalen Schlussverkaufs 2,000 gleichzeitige Kรคufer erwartet. Das Team einigt sich zunรคchst auf ein Kriterium: Die Bezahltransaktion muss fรผr 95 Prozent der Nutzer in weniger als drei Sekunden abgeschlossen sein, mit einer Fehlerrate von unter einem Prozent.
Der Test fรผhrt das gleiche Skript (Browse-Search-Cart-Checkout) mit 250, 500, 1,000, 1,500 und 2,000 virtuellen Benutzern aus. Die Antwortzeit bleibt bis zu 1,000 Benutzern bei etwa zwei Sekunden, steigt bei 1,500 Benutzern auf 2.8 Sekunden und erreicht bei 2,000 Benutzern neun Sekunden, wรคhrend die CPU-Auslastung der Datenbank bei 98 Prozent liegt. Die Skalierbarkeitsgrenze liegt daher bei etwa 1,500 Benutzern, und der Flaschenhals ist die Datenbankebene โ nicht die Anwendungsserver, die das Team ursprรผnglich hinzufรผgen wollte.
Skalierbarkeitstestwerkzeuge
Fรผr Skalierbarkeitstests wird ein Tool benรถtigt, das Lasten von mehreren Maschinen gleichzeitig generieren und die Ergebnisse zentral auswerten kann. Die Wahl des Tools richtet sich รผblicherweise nach der primรคren Programmiersprache des Teams und den zu testenden Protokollen.
| Werkzeug | Scripting | am besten geeignet fรผr |
|---|---|---|
| Apache JMeter | GUI- und XML-Testplรคne, Java basierend | Umfassende Protokollabdeckung einschlieรlich JDBC, JMS, LDAP und SOAP |
| Grafana k6 | JavaSkript oder TypeScript | API- und Microservice-Tests sind in eine CI/CD-Pipeline integriert. |
| Gatling | Java, Kotlin- oder Scala-DSL | Hohe Anzahl virtueller Benutzer pro Injektor mit detaillierten HTML-Berichten |
| Heuschrecke | Ebene Python | Python Teams, die den Client รผber HTTP hinaus erweitern mรผssen |
| LoadRunner | C-รคhnliche Skripte, die in VuGen aufgezeichnet wurden | Groรe Unternehmensnetzwerke mit Legacy- und Standardanwendungen |
Cloud-basierte Runner wie z. B. BlazeMeterLoadView und Gatling Enterprise basieren auf mehreren dieser Engines und sind empfehlenswert, sobald ein Test Zehntausende virtuelle Benutzer oder Datenverkehr aus mehreren geografischen Regionen erfordert. Eine umfassendere รbersicht dieser Kategorie finden Sie im Leitfaden zu Leistungstest-Tools.
Herausforderungen und bewรคhrte Verfahren beim Skalierbarkeitstest
Die meisten enttรคuschenden Skalierbarkeitsergebnisse tracKehren wir zum Testaufbau zurรผck, anstatt zur Anwendung. Das sind die Probleme, die immer wieder auftreten, und die Gewohnheiten, die sie verhindern.
Gemeinsame Herausforderungen
- Unterdimensionierte Umgebungen โ Ein Testsystem mit der Hรคlfte des Produktionsspeichers meldet einen Engpass, der in der Produktion nicht existiert.
- Unrealistische Arbeitslastmodelle โ Skripte ohne Denkzeit oder Datenvariation treffen auf Caches, die echte Benutzer nicht bemerken wรผrden.
- Rauschende Ergebnisse โ Automatische Skalierung, Speicherbereinigung und gemeinsam genutzte Cloud-Hardware fรผhren dazu, dass zwei identische Ausfรผhrungen zu unterschiedlichen Ergebnissen fรผhren.
- Dรผnne Beobachtbarkeit โ Ohne serverseitige Metriken zeigt ein langsames Ergebnis zwar, dass etwas kaputtgegangen ist, aber nicht, was.
- Kosten โ Die Erzeugung einer sehr hohen Parallelitรคt erfordert eine eigene Flotte von Lastgeneratoren, deren Budget leicht unterschรคtzt werden kann.
bewรคhrte Vorgehensweisen
- Die Bestehenskriterien, wie beispielsweise ein Perzentil der Reaktionszeit und eine maximale Fehlerrate, sollten vor dem ersten Durchlauf vereinbart werden.
- Erhรถhen Sie die Last in geplanten Schritten und halten Sie jeden Schritt so lange, bis sich das System stabilisiert hat.
- Variieren Sie die Testdaten fรผr jeden virtuellen Benutzer, damit die Zwischenspeicherung die Ergebnisse nicht verfรคlscht.
- Erfassen Sie neben den clientseitigen Kennzahlen auch Anwendungs-, Datenbank- und Infrastrukturmetriken.
- Speichern Sie die Testskripte in der Versionskontrolle und fรผhren Sie bei jedem Build einen kurzen Skalierbarkeitscheck durch, anschlieรend vor der Verรถffentlichung einen vollstรคndigen Testlauf.
- Vergleichen Sie die Trends รผber verschiedene Builds hinweg, anstatt einen einzelnen Bericht isoliert zu beurteilen.
Skalierbarkeitstests vs. Lasttests
Die beiden werden oft verwechselt, da beide eine Lastverteilung anwenden. Der Unterschied liegt in der Frage, die jeder Test beantwortet: Skalierbarkeitstests untersuchen, wie weit das System wachsen kann, wรคhrend Lastprรผfung fragt, ob es die bereits erwartete Last bewรคltigen kann.
| Verpflegung | Skalierbarkeitstests | Load Testing |
|---|---|---|
| Optik | Im Fokus steht die Leistungsfรคhigkeit Ihrer Websites, Software, Hardware und Anwendungen, wenn รnderungen an der Grรถรe oder dem Umfang des Systems vorgenommen werden, um einem wachsenden Bedarf gerecht zu werden. | Bei Lasttests geht es darum, eine Anwendung unter hoher Last zu testen, um festzustellen, ab welchem โโPunkt die Systemreaktionszeit abbricht. |
| Lastmuster | Die Last wird schrittweise erhรถht, und zwischen den Schritten kรถnnen Ressourcen hinzugefรผgt werden. | Die Last wird fรผr eine festgelegte Dauer auf einem erwarteten Spitzenwert gehalten. |
| Frage beantwortet | Wie weit kann dieses System wachsen und was setzt ihm Grenzen? | Erreicht dieses System heute seine vereinbarten Ziele? |
| Typische Ausgabe | Eine Skalierbarkeitsgrenze, ein Engpass und ein Kapazitรคtsplan | Bestanden oder Nichtbestehen der Reaktionszeit- und Durchsatzziele |
Beide sitzen unter dem nicht-funktionale Tests Regenschirm neben Stress-Tests, Spike-Test, Ausdauertest und VolumenprรผfungEine ausgereifte Performance-Strategie lรคsst รผblicherweise mehrere davon gegen dieselben Skripte laufen.

