Was ist Load Testing?
Load Testing ist die Praxis, realistischen Benutzer-Traffic gegen eine Website, API oder einen Service zu simulieren und zu messen, wie das System unter dieser Last performt. Das Ziel ist Verifikation: Sie haben eine Traffic-Prognose (Black-Friday-Peak, eine Launch-Day-Kampagne, ein täglicher 9-Uhr-Anstieg) und wollen wissen, ob Ihre Infrastruktur damit umgehen kann, bevor echte Benutzer es tun.
Ein Load Test rampt virtuelle Benutzer (VUs) typischerweise auf eine Ziel-Konkurrenz hoch, hält sie für einen anhaltenden Zeitraum auf diesem Level und zeichnet die wichtigen Metriken auf: Antwortzeiten, Durchsatz, Fehlerrate. Wenn diese Metriken innerhalb Ihres Performance-Budgets (Ihrer Service-Level-Objectives oder SLOs) bleiben, besteht der Test.
Warum Load Testing wichtig ist
Ohne Load Testing ist jeder Release ein Glücksspiel. Das erste Mal, dass Sie merken, dass Ihr Checkout-Flow 5.000 gleichzeitige Käufer nicht bewältigt, ist der Moment, in dem Ihre Kunden nicht auschecken können. Load Testing wandelt das Glücksspiel in Beweise um.
Konkret beantwortet ein Load Test:
- Erfüllt das System meine SLOs bei erwartetem Peak-Traffic? Wenn Ihr SLO "p95-Latenz unter 1 Sekunde" ist und der Load Test zeigt, dass p95 bei Peak auf 3 Sekunden klettert, haben Sie eine Fix-oder-Verschieben-Entscheidung vor dem Launch, nicht während.
- Wo beginnt die Latenz zu degradieren? Response Time skaliert in der Regel linear mit Concurrency bis zu einem Punkt, dann steigt sie steil an. Diesen Ellbogen zu kennen, sagt Ihnen Ihre echte Kapazitätsobergrenze.
- Was ist die Fehlerrate bei der Ziellast? Eine perfekt aussehende p95 ist bedeutungslos, wenn 10% der Anfragen timeouten. Fehlerrate ist genauso ein SLO-Gate wie Latenz.
Load Testing vs Stress Testing vs Performance Testing
Diese Begriffe überlappen sich und werden oft synonym verwendet, beantworten aber unterschiedliche Fragen.
- Performance Testing ist der Sammelbegriff für jeden Test, der nicht-funktionales Systemverhalten misst: Geschwindigkeit, Zuverlässigkeit, Skalierbarkeit unter Last.
- Load Testing ist eine Untermenge, die sich speziell auf erwartete Traffic-Levels fokussiert. Es ist Verifikation.
- Stress Testing ist das Gegenteil von Load Testing: statt bei erwarteter Last laufen Sie darüber hinaus, um den Breaking Point zu finden. Es ist Discovery.
Ein typisches Engineering-Team führt Load Tests vor jedem Major Release aus (CI/CD-freundlich, schnell) und Stress Tests weniger häufig (vierteljährlich oder nach Architekturänderungen).
Wichtige Metriken im Load Testing
Fünf Metriken sind am wichtigsten beim Lesen eines Load-Test-Reports:
- Response-Time-Perzentile (p50, p95, p99). Der Durchschnitt ist irreführend, weil Ausreißer ihn beeinflussen. p95 bedeutet "95% der Anfragen waren schneller als dies", was ein viel besserer Proxy für User Experience ist.
- Durchsatz (Requests pro Sekunde). Wie viel Arbeit das System tatsächlich erledigt. Achten Sie auf den Moment, in dem der Durchsatz nicht mehr linear mit zusätzlicher Last skaliert.
- Fehlerrate. Prozentsatz fehlgeschlagener Anfragen (HTTP 5xx, Timeouts, Assertion Failures). Alles über ~0,5% unter erwarteter Last ist in der Regel ein Fail.
- Aktive virtuelle Benutzer. Die Konkurrenz, die der Test tatsächlich generiert. Wichtig, gegen Ihr Ziel zu prüfen, weil viele Tools die Thread-Erstellung still kappen, wenn lokale Ressourcen ausgehen.
- Ressourcenauslastung auf dem System under Test. CPU, Memory, Datenbankverbindungen, Netzwerk. Der Load Test zeigt das Symptom (langsame Antworten), aber die Auslastung sagt Ihnen die Ursache.
Wann ein Load Test ausgeführt werden sollte
- Vor jedem Major Release. Integrieren Sie Load Testing in CI/CD, sodass jeder Build gegen Ihre SLOs geprüft wird.
- Vor einem bekannten Peak. Pre-Black-Friday, pre-Produkt-Launch, pre-Marketing-Kampagne.
- Nach Infrastruktur-Änderungen. Neue Datenbank, neue Caching-Schicht, neue Region. Load Test erneut ausführen, um zu bestätigen, dass SLOs weiterhin halten.
- Nach signifikanten Code-Änderungen. Major Refactorings, Framework-Upgrades oder Dependency-Änderungen können Performance-Charakteristika subtil verschieben.
Wie Load Testing zu Stress, Spike und Soak Testing passt
Load Testing ist eine von mehreren "Formen" nicht-funktionalen Testings:
- Load Testing: anhaltend bei erwartetem Peak.
- Stress Testing: über erwartetem Peak hochgerampt, um den Breaking Point zu finden.
- Spike Testing: sofortiger Sprung von Normal auf Peak (oder darüber), um Elastic-Scaling- und Warm-up-Verhalten zu testen.
- Soak / Endurance Testing: bei moderater Last über viele Stunden anhaltend, um Memory Leaks und langsame Degradation aufzudecken.
Dieselben Skripte laufen alle vier. Nur das Lastprofil (Thread-Group- / Scenario-Einstellungen) ändert sich.
Tools für Load Testing
Die beiden Open-Source-Standards sind:
- JMeter: Apache-Projekt, Java-basiert, GUI-getrieben. Starke Protokoll-Abdeckung (HTTP, JDBC, JMS, MQTT, gRPC), tausende Community-Plugins, der langjährige Standard in Enterprise-QA.
- k6: modern, code-first (JavaScript), in Go gebaut. Geringerer Speicher-Footprint pro VU, entwicklerfreundliche DX, integriert sich sauber in CI/CD.
Beide laufen lokal für kleine Tests. Für realistische Last (tausende gleichzeitiger Benutzer aus mehreren geografischen Regionen) brauchen Sie einen Cloud-Runner. LoadFocus führt sowohl JMeter als auch k6 aus 25+ Cloud-Regionen mit KI-gestützter Analyse der Ergebnisse aus.
Wenn Sie die Skripte nicht selbst schreiben möchten, bietet LoadFocus Load Testing Services, bei denen Ingenieure die Skripte für Ihre Szenarien schreiben, sie skaliert ausführen und den Bericht liefern.
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um — derselben Plattform, die alles antreibt, was du gerade gelesen hast.