Auslastungs-/Belastungstests in ASP.NET Core
Auslastungstests und Belastungstests sind wichtig, um sicherzustellen, dass eine Web-App leistungsfähig bleibt und skalierbar ist. Auslastungs- und Belastungstests haben unterschiedliche Ziele, auch wenn sie oft ähnliche Tests durchführen.
Auslastungstests: Hier wird getestet, ob die App eine bestimmte Benutzerauslastung für ein bestimmtes Szenario verarbeiten kann und dabei weiterhin reaktionsfähig bleibt. Die App wird dabei unter normalen Umständen ausgeführt.
Belastungstests: Hier wird die Stabilität der App getestet, wenn sie unter extremen Bedingungen ausgeführt wird, oft auch für einen längeren Zeitraum. Beim Test wird die App einer hohen Benutzerauslastung ausgesetzt, entweder mit Spitzenwerten oder einer schrittweise ansteigenden Auslastung. Alternativ können die Computingressourcen der App eingeschränkt werden.
Bei Belastungstests wird untersucht, ob sich eine App unter Belastung nach einem Fehler erholen und ordnungsgemäß zum erwarteten Verhalten zurückkehren kann. Unter Belastung wird die App mit außergewöhnlich hoher Belastung ausgeführt.
Azure Load Testing ist ein vollständig verwalteter Auslastungstestdienst, mit dem Sie eine hohe Auslastung generieren können. Der Dienst simuliert Datenverkehr für Ihre Apps, unabhängig davon, wo sie gehostet werden. Mit Azure Load Testing (Vorschau) können Sie vorhandene Apache JMeter-Skripts verwenden, um hohe Auslastung zu generieren.
Visual Studio 2019-Auslastungstests wurde als veraltet markiert. Der entsprechende cloudbasierte Azure DevOps-Auslastungstestdienst wurde geschlossen.
Tools von Drittanbietern
In der folgenden Liste finden Sie Webleistungstools von Drittanbietern, die verschiedene Features bieten:
- Apache JMeter
- ApacheBench (ab)
- Gatling
- jmeter-dotnet-dsl
- k6
- Locust
- West Wind WebSurge
- Netling
- Vegeta
- NBomber
Auslastungs- und Belastungstest mit Releasebuilds
Auslastungs- und Belastungstests sollten im Release- und Produktionsmodus und nicht im Debug- und Entwicklungsmodus durchgeführt werden. Releasekonfigurationen sind vollständig mit minimaler Protokollierung optimiert. Die Debugkonfiguration ist nicht optimiert. Der Entwicklungsmodus ermöglicht eine erweiterte Informationsprotokollierung, die sich auf die Leistung auswirken kann.