Last- und Performancetest

Last- und Performancetest prüfen, wie sich Software unter verschiedenen Belastungen verhält.

Sie messen, ob ein System schnell genug ist und auch unter hoher Last stabil läuft.

Was sind Last- und Performancetests?

  • Belastungstest: Funktioniert es unter Last?
  • Geschwindigkeitstest: Ist es schnell genug?
  • Stabilitätstest: Bleibt es stabil?

LAST- UND PERFORMANCETEST - KONZEPT

Normale Situation       Hohe Last
     │                     │
     ▼                     ▼
┌─────────┐          ┌─────────┐
│ 10 User │          │1000 User│
└─────────┘          └─────────┘
     │                     │
     ▼                     ▼
 Schnell?             Schnell?
 Stabil?              Stabil?

 Ziel: System muss IMMER funktionieren!
Test-Arten (🆕 NEU 2025)

1. Load Testing (Lasttest)

Normale erwartete Last simulieren

Beispiel: 100 gleichzeitige Benutzer
        ├─> Server antwortet in < 2 Sek?
        └─> Keine Fehler?

2. Stress Testing (Stresstest)

System bis zur Grenze belasten

Beispiel: Immer mehr User hinzufügen
        100 → 500 → 1000 → 5000 User
        Wann bricht System zusammen?

3. Volume Testing (Volumentest)

Große Datenmengen verarbeiten

Beispiel: Datenbank mit 1 Mio. Einträgen
        Ist Suche noch schnell?

4. Spike Testing (Spitzentest)

Plötzliche Laststeigerung

Beispiel: Black Friday - 10 → 10.000 User
        Verkraftet Server den Ansturm?
TEST-ARTEN VISUALISIERT

Last über Zeit

LOAD TEST
Last│ ████████████████  (konstant)
    └──────────────────> Zeit

STRESS TEST
Last│          ████████ (steigend bis Crash)
    │       ████
    │    ███
    └──────────────────> Zeit

SPIKE TEST
Last│    ███            (plötzlich hoch)
    │  ██   ██
    │ █       █
    └──────────────────> Zeit

VOLUME TEST
Daten│ ████████████████ (große Menge)
     └──────────────────> Zeit
Performance-Metriken (Was wird gemessen?)

1. Response Time (Antwortzeit)

User klickt → Wie lange bis Antwort?

Gut:      < 1 Sekunde
OK:       1-3 Sekunden
Schlecht: > 3 Sekunden

2. Throughput (Durchsatz)

Wie viele Anfragen pro Sekunde?

Beispiel: 1000 Requests/Sekunde

3. Concurrent Users (Gleichzeitige Nutzer)

Wie viele User gleichzeitig?

Beispiel: System unterstützt 500 gleichzeitige User

4. Resource Utilization (Ressourcenverbrauch)

CPU: 80%  ⚠️ (zu hoch!)
RAM: 60%  ✓  (OK)
Disk: 40% ✓  (OK)
PERFORMANCE-TEST ABLAUF

┌────────────────────────┐
│ 1. BASELINE MESSEN     │
│  Wie schnell ist es    │
│  ohne Last?            │
└────────────────────────┘
          ↓
┌────────────────────────┐
│ 2. LAST SIMULIEREN     │
│  Virtuelle User        │
│  erzeugen ([[Testfall]])     │
└────────────────────────┘
          ↓
┌────────────────────────┐
│ 3. METRIKEN SAMMELN    │
│  Antwortzeiten,        │
│  Fehlerrate, CPU etc.  │
└────────────────────────┘
          ↓
┌────────────────────────┐
│ 4. ENGPÄSSE FINDEN     │
│  Wo wird es langsam?   │
│  Was bricht zuerst?    │
└────────────────────────┘
          ↓
┌────────────────────────┐
│ 5. OPTIMIEREN          │
│  Probleme beheben      │
└────────────────────────┘
Warum sind diese Tests wichtig?

Verhindert Probleme in Produktion:

  • ✅ Kein Serverabsturz bei vielen Usern
  • ✅ Schnelle Ladezeiten bleiben erhalten
  • ✅ Skalierbarkeit ist gesichert
  • ✅ Bessere Benutzererfahrung
Praxis-Beispiel

Online-Shop startet Rabattaktion:

Vor Aktion:  100 User/Minute
Bei Aktion: 5000 User/Minute

Performance-Test zeigt:
 ├─> Datenbank zu langsam
 ├─> Webserver Überlastung
 └─> Lösung: Caching + mehr Server

Ergebnis: Aktion läuft reibungslos! ✓
Häufige Probleme

  • Speicherlecks: RAM läuft voll
  • Datenbankflaschenhals: Zu langsame Queries
  • Netzwerkprobleme: Bandbreite zu gering
  • Ineffizienter Code: Algorithmen zu langsam

Tools für Performance-Tests

  • JMeter: Open Source Lasttesting
  • Gatling: Für Web-Anwendungen
  • LoadRunner: Enterprise-Tool
  • Apache Bench: Einfaches CLI-Tool