NBomber-Lasttests: das .NET-Framework im Überblick
6 Min. Lesezeit
NBomber ist ein Lasttest-Framework für .NET: Sie schreiben jeden Test als C#- oder F#-Szenario, fügen ihn einem gewöhnlichen Projekt hinzu und starten ihn wie jedes andere Programm. Ein NBomber-Lasttest passt zu Teams, die ohnehin in .NET entwickeln und ihre Lasttests in derselben Sprache, im selben Repository und mit demselben Test-Runner haben wollen. Kostenlos ist NBomber nur für private und akademische Nutzung; ein Unternehmen braucht eine bezahlte Lizenz, und diese eine Tatsache gibt bei mehr Evaluierungen den Ausschlag als jede Funktion.
Wir haben NBomber für dieses Review nicht selbst ausgeführt. Die Fakten stammen aus der Dokumentation, der Preisseite, dem GitHub-Repository und dem NuGet-Paket von NBomber, geprüft am 21. Oktober 2026; die Einschätzungen sind unsere eigenen.
| Thema | NBomber |
|---|---|
| Lizenz | Kostenlos für private und akademische Nutzung; kostenpflichtig für Organisationen |
| Preis für ein Unternehmen | Business 1.500 $ pro Jahr, Enterprise 2.500 $ pro Jahr |
| Aktuelle Version | 6.7.1 (16. Oktober 2026) |
| Laufzeit | .NET Standard 2.1, also .NET Core 3.0 oder neuer |
| Tests geschrieben als | C#- oder F#-Szenarien |
| Lastmodell | Inject (Ankunftsrate) oder konstante Kopien |
| Pass/Fail-Prüfungen | Schwellenwerte während des Laufs, Asserts auf die Endstatistik |
| Skalierung | NBomber Cluster, Enterprise-Lizenz |
Wer entwickelt NBomber, und ist es kostenlos?
NBomber LLC entwickelt es, der Quellcode liegt auf GitHub. Kostenlos ist es für private, Hobby- und akademische Nutzung, und die Lizenzseite sagt klar, dass NBomber für Organisationen nicht kostenlos ist.
Die Lizenzseite zählt Benchmarks, Tutorials und Review-Inhalte zur privaten Nutzung. Im Unternehmen brauchen Sie eine Business- oder Enterprise-Lizenz, die pro Organisation vergeben wird statt pro Entwicklerplatz und keine Grenze für Instanzen oder parallele Läufe hat. Die Preisseite nennt für Business 1.500 $ pro Jahr und für Enterprise 2.500 $ pro Jahr, beide mit 30 Tagen Geld-zurück-Garantie. Der Lizenzschlüssel geht mit .WithLicense(...) oder einem Argument --license an den Runner, und NBomber braucht Internetzugang, um ihn zu prüfen; eine Offline-Prüfung gibt es auf Anfrage per E-Mail (geprüft am 21. Oktober 2026).
Die aktuelle Version ist v6.7.1, veröffentlicht am 16. Oktober 2026, vier Tage nach 6.7.0 (geprüft am 21. Oktober 2026).
Wie funktioniert ein NBomber-Szenario?
Ein Szenario ist ein Name plus eine asynchrone Funktion, deren Ausführung NBomber bei jedem Aufruf misst. Sie hängen Lastsimulationen und Schwellenwerte daran, registrieren es beim NBomberRunner und starten das Programm.
Dieser Test überspringt das Warm-up, steigert die Ankunftsrate über zwei Minuten auf 50 neue Szenario-Kopien pro Sekunde, hält sie zehn Minuten und endet mit Exit-Code 1, wenn 1 % oder mehr der Anfragen gescheitert sind. Für die Anfrage nutzt er das Plugin NBomber.Http:
var http = Http.CreateDefaultClient();
var scenario = Scenario.Create("browse", async context =>
{
var request = Http.CreateRequest("GET",
"https://staging.example.com/products");
return await Http.Send(http, request);
})
.WithoutWarmUp()
.WithLoadSimulations(
Simulation.RampingInject(rate: 50,
interval: TimeSpan.FromSeconds(1),
during: TimeSpan.FromMinutes(2)),
Simulation.Inject(rate: 50,
interval: TimeSpan.FromSeconds(1),
during: TimeSpan.FromMinutes(10)))
.WithThresholds(
Threshold.Create(s => s.Fail.Request.Percent < 1));
var result = NBomberRunner
.RegisterScenarios(scenario).Run();
return result.Thresholds.Any(t => t.IsFailed) ? 1 : 0;
Die Seite zum HTTP-Client empfiehlt Http.CreateDefaultClient() statt eines einfachen new HttpClient() und sagt, dass das Plugin Statuscodes und übertragene Daten erfasst (geprüft am 21. Oktober 2026). Ein Schwellenwert allein vermerkt den Fehlschlag nur im Bericht; erst die letzte Zeile macht daraus einen Exit-Code, den eine Pipeline auswerten kann. Ohne .WithoutWarmUp() führt NBomber zuerst ein 30-sekündiges Warm-up mit den Simulationen des Szenarios aus, so die Seite zu Szenarien (geprüft am 21. Oktober 2026). Weil das Szenario gewöhnliches C# ist, lässt sich alles, was eine .NET-Bibliothek aufrufen kann, auf dieselbe Weise unter Last setzen.
Welche Lastmodelle bietet NBomber?
Beide Arten. Die Inject-Simulationen starten neue Kopien mit fester Rate, egal was frühere Kopien gerade tun, also ein offenes Lastmodell; die Constant-Simulationen halten eine feste Zahl von Kopien am Laufen, also ein geschlossenes.
Die Seite zur Lastsimulation führt sie auf (geprüft am 21. Oktober 2026):
- Offen:
Inject,RampingInject,InjectRandomundIterationsForInject. - Geschlossen:
KeepConstant,RampingConstantundIterationsForConstant. - Zeitsteuerung:
Pause, das den Start eines Szenarios verzögert oder es für eine feste Zeit pausiert.
Unser Artikel zum offenen vs geschlossenen Lastmodell erklärt, welches zu Ihrem Traffic passt. Eine öffentliche Website verhält sich meist wie das offene Modell, ein fester Pool interner Clients eher wie das geschlossene.
Wie funktionieren Schwellenwerte und Pass/Fail-Prüfungen?
Schwellenwerte zur Laufzeit prüfen die laufende Statistik, standardmäßig alle 5 Sekunden, und erscheinen im HTML-Bericht. Asserts, geschrieben in xUnit oder NUnit, prüfen die Endstatistik nach dem Lauf, und ein fehlgeschlagener Assert markiert den Lauf als fehlgeschlagen.
Die Seite zu Schwellenwerten zeigt Prüfungen auf Fehleranteil, Statuscodes, Perzentile der Latenz (p50, p75, p95, p99 und Maximum), Anfragen pro Sekunde und übertragene Bytes. Ein Schwellenwert stoppt den Test standardmäßig nicht; mit abortWhenErrorCount stoppt er nach einer festgelegten Zahl fehlgeschlagener Prüfungen (geprüft am 21. Oktober 2026). Einen Exit-Code nennt die Seite nicht; deshalb gibt das Beispiel oben selbst einen aus dem Ergebnis zurück. Unser Leitfaden zu Pass/Fail-Kriterien für Lasttests zeigt, welche Grenzen sinnvoll sind.
Welche Protokolle kann NBomber testen?
Jedes Protokoll, das eine .NET-Bibliothek sprechen kann, denn NBomber misst nur den Code, den Sie ihm geben. Fertige Plugins gibt es für HTTP, WebSockets, MQTT und AMQP, dazu eine WebBrowser-Option.
Die Übersichtsseite beschreibt das Framework als unabhängig vom Protokoll, und die Preisseite führt diese Plugins in jedem Plan auf, auch im kostenlosen. Das gilt ebenso für Datenbanken und Message Queues, die Sie über ihre eigenen .NET-Clients ansprechen (geprüft am 21. Oktober 2026). Der Preis dafür: Außerhalb der Plugins schreiben und pflegen Sie den Client-Code selbst.
Wie skalieren Sie einen NBomber-Test?
Mit NBomber Cluster: Ein Coordinator steuert den Lauf, Agents führen die Szenarien aus, und alle kommunizieren über einen NATS-Message-Broker. Cluster gehört zur Enterprise-Lizenz.
Die Cluster-Übersicht erklärt die Rollen, und laut Lizenzseite können Entwickler ihn vor dem Kauf lokal mit einem Local Dev Cluster ausprobieren; die Seite zum Local Dev Cluster begrenzt ihn auf 1 Coordinator und 2 Agents und stoppt jeden Lauf nach einer Minute (geprüft am 21. Oktober 2026). Die Kubernetes-Integration von NBomber Studio, ebenfalls nur in Enterprise, richtet NATS und die Agent-Pods für Sie ein. Ohne Cluster läuft ein NBomber-Prozess auf einer Maschine; die Seite zu den Systemanforderungen empfiehlt für hohe Last 4 bis 8 CPU-Kerne.
LoadFocus, der Herausgeber dieser Website, führt keine NBomber-Tests aus. LoadFocus führt JMeter-Testpläne und k6-Skripte aus 25 Cloud-Regionen aus.
Was kann NBomber gut, und wo liegen seine Grenzen?
Stark ist es für .NET-Teams: Tests sind C#- oder F#-Code, jeder .NET-Client wird zum Lasttest, und beide Lastmodelle sind eingebaut. Seine Grenzen sind die Firmenlizenz, ein Ökosystem mit nur einer Sprache und kostenpflichtige verteilte Läufe.
- Tests liegen neben dem Anwendungscode, mit derselben IDE, denselben Paketen und denselben Reviews.
- Schwellenwerte sind eingebaut, und Asserts laufen in den xUnit- oder NUnit-Tests, die Sie schon haben.
- Kommerzielle Nutzung braucht eine Lizenz, auch für einen einzelnen Entwickler.
- Verteilte Läufe brauchen Enterprise und einen NATS-Broker.
- Tester ohne .NET-Kenntnisse müssen erst C# oder F# lernen.
Wann sollten Sie stattdessen k6, Gatling oder JMeter wählen?
Wählen Sie ein anderes Tool, wenn Ihr Team nicht in .NET schreibt oder die Lizenzkosten nicht passen.
Wählen Sie k6, wenn Sie JavaScript-Skripte und ein Open-Source-Tool ohne Lizenzgebühr für den Firmeneinsatz wollen: Sein Repository steht unter AGPL-3.0 (geprüft am 21. Oktober 2026). LoadFocus führt k6-Skripte aus 25 Cloud-Regionen aus, Arrival-Rate-Szenarien allerdings mit fester Benutzerzahl. Wählen Sie Gatling für ein Code-first-Tool auf der JVM; unser Gatling-Review behandelt es. Wählen Sie JMeter, wenn Tester eine GUI bevorzugen oder Sie JDBC-, JMS- oder LDAP-Sampler von Haus aus brauchen. Der Überblick über Open-Source-Lasttest-Tools stellt sie nebeneinander.
FAQ
Ist NBomber für kommerzielle Nutzung kostenlos? Nein. NBomber ist nur für private und akademische Nutzung kostenlos. Ein Unternehmen braucht eine Business-Lizenz für 1.500 $ pro Jahr oder eine Enterprise-Lizenz für 2.500 $ pro Jahr.
Welche .NET-Versionen unterstützt NBomber? Es basiert auf .NET Standard 2.1 und läuft daher auf .NET Core 3.0 und jeder neueren .NET-Version. Die Dokumentation empfiehlt .NET 10.
Kann LoadFocus NBomber-Tests ausführen? Nein. LoadFocus führt JMeter-Testpläne und k6-Skripte aus. Um NBomber auf mehr als einer Maschine laufen zu lassen, nutzen Sie NBomber Cluster, das eine Enterprise-Lizenz voraussetzt.
Weiterlesen
- Gatling-Lasttests: das JVM-Tool im Überblick
- Open-Source-Lasttest-Tools: sechs Optionen im Überblick
- Offenes vs geschlossenes Lastmodell: welches passt wann?
- Pass/Fail-Kriterien für Lasttests: so legen Sie sie fest
- Tsung-Lasttests: das Erlang-Tool im Überblick
Die technischen Aussagen in diesem Artikel wurden nicht unabhängig geprüft.