Modern and flexible load testing framework for Pull and Push scenarios, designed to test any system regardless a protocol (HTTP/WebSockets/AMQP etc) or a semantic model (Pull/Push).
A fundamental feature of NBomber is that you can test any system from database to web server or message broker. Define and run your tests without any dependency on a protocol (HTTP/WebSockets/AMQP etc) or a semantic model (Pull/Push).
var step = HttpStep.Create("step", context => Http.CreateRequest("GET", "https://nbomber.com") ); var scenario = ScenarioBuilder.CreateScenario("scenario", step); NBomberRunner .RegisterScenarios(scenario) .Run();
var db = new MongoClient().GetDatabase("TestDb"); var usersCollection = db.GetCollection<User>("Users"); var step = Step.Create("step", async context => { await usersCollection.Find(user => user.IsActive == true) .Limit(500) .ToListAsync(); return Response.Ok(); }); var scenario = ScenarioBuilder.CreateScenario("scenario", step); NBomberRunner.RegisterScenarios(scenario) .RunInConsole();
NBomber works across almost all OS environments – including major Linux distributions, Windows, Mac OS. It can also be deployed in containers such as Docker, Kubernetes and Swarm.
Easy integration with your CI/CD pipeline to run your tests automatically, check assertions and catch any performance degradation.
Simulate millions of concurrent users by running your tests from the test agents cluster.
Simulate any real workload to cover complex cases with mixing Pull/Push scenarios, protocols (HTTP/WebSockets) and formats (XML/JSON/Protobuf).
Take a look at a test in real time and perform detailed results analysis to understand trends.
Take advantage of the pluggable architecture and use integrations with test runners (Nunit/Xunit), container orchestrators (Kubernetes), data storage and visualisation (InfluxDb + Grafana).