Zum Inhalt springen
SDETRole
SDETRole

Glossar · Performance

Soak-Test

Englisch: Soak testing

Auch genannt: Dauertest, Dauerlasttest, Endurance Testing, Langzeittest

Definition

Ein Performancetest, der eine normale, realistische Last viele Stunden lang hält, um Probleme aufzudecken, die sich erst mit der Zeit aufbauen, etwa Speicherlecks.

Ein Soak-Test (auch Dauertest oder Endurance-Test) betreibt ein System über einen langen Zeitraum unter normaler, gleichbleibender Last, typischerweise mehrere Stunden und manchmal einen Tag oder länger. Die Last selbst ist unauffällig; entscheidend ist die Dauer. Viele Fehler sind in einem 10-minütigen Lasttest unsichtbar, weil sie langsam wachsen: ein paar Megabyte Speicherleck pro tausend Anfragen, eine Verbindung, die nie an den Pool zurückgegeben wird, eine Logdatei, die die Festplatte füllt.

Was er findet

  • Speicherlecks. Heap-Nutzung, die stetig steigt und nach der Garbage Collection nie wieder sinkt und schließlich in einem Out-of-Memory-Absturz endet.
  • Ressourcenerschöpfung. Datenbankverbindungen, Datei-Handles, Threads oder Sockets, die geöffnet und nicht wieder freigegeben werden.
  • Schleichende Latenzdrift. Das p95 in Stunde sechs ist spürbar schlechter als in Stunde eins, oft durch wachsende Caches, aufgeblähte Tabellen oder Fragmentierung.
  • Störungen durch geplante Jobs. Nächtliche Batch-Jobs, Backups, Zertifikatserneuerungen oder Logrotation, die mit Live-Traffic kollidieren.
  • Wachsender Speicherbedarf. Festplatten, die sich mit Logs, temporären Dateien oder Rückständen in Queues füllen.

Beispiel (k6)

export const options = {
  stages: [
    { duration: '10m', target: 80 },
    { duration: '8h', target: 80 },
    { duration: '10m', target: 0 },
  ],
  thresholds: {
    http_req_duration: ['p(95)<600'],
    http_req_failed: ['rate<0.005'],
  },
};

Die Default-Funktion ist dieselbe realistische User Journey, die Sie für einen Lasttest verwenden würden. Der Unterschied ist die lange, gleichbleibende Stufe.

Wie Sie die Ergebnisse lesen

Ein Soak-Test wird nach Trends beurteilt, nicht nur nach Bestanden/Nicht-bestanden-Schwellenwerten. Stellen Sie Speicher, Verbindungszahlen, Latenz-Perzentile und Fehlerrate über den gesamten Lauf grafisch dar. Eine flache Linie bedeutet bestanden. Eine stetig steigende Kurve ist ein Fehler, selbst wenn der Lauf endete, bevor etwas abgestürzt ist, denn Produktion läuft weit länger als acht Stunden.

Häufige Fehler

  • Den Soak-Test mit Stresslast fahren, was zwei Fragen vermischt und die Ursache eines Fehlschlags unklar macht.
  • Nur clientseitige Metriken beobachten. Lecks zeigen sich zuerst in den Graphen für Serverspeicher und Pools.
  • Eine Umgebung verwenden, die Dienste während des Laufs neu startet oder per Autoscaling austauscht, was genau den Aufbau verbirgt, nach dem Sie suchen.
  • Ihn weglassen, weil er langsam ist. Planen Sie ihn lieber über Nacht oder am Wochenende ein, statt ihn zu streichen.

Tippen Sie, um SDETRole zu durchsuchen.

Volltextsuche mit Pagefind · läuft in Ihrem Browser Suchseite öffnen →