Skip to content

Commit 16d6057

Browse files
committed
Update README.md
1 parent 5bf0629 commit 16d6057

File tree

1 file changed

+29
-51
lines changed

1 file changed

+29
-51
lines changed

README.md

Lines changed: 29 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -6,76 +6,55 @@
66
[![NuGet](https://img.shields.io/nuget/v/nbomber.svg)](https://www.nuget.org/packages/nbomber/)
77
[![Gitter](https://badges.gitter.im/nbomber/community.svg)](https://gitter.im/nbomber/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
88

9-
Very simple load testing framework for Pull and Push scenarios. It's 100% written in F# and targeting .NET Core and full .NET Framework.
9+
NBomber is a modern and flexible load-testing framework for Pull and Push scenarios, designed to test any system regardless of a protocol (HTTP/WebSockets/AMQP, etc) or a semantic model (Pull/Push).
1010

11-
### Project Support
12-
We appreciate every little donation. If everyone we've ever helped gave back just small donation a month, we'd be able to bring you NBomber for years and years to come.
13-
If you or your company are using NBomber and willing to help keep the project sustainable, please donate via [Patreon](https://www.patreon.com/nbomber).
11+
NBomber is free, developer-centric, and extensible.
12+
Using NBomber, you can test the reliability and performance of your systems and catch performance regressions and problems earlier.
13+
NBomber will help you to build resilient and performant applications that scale.
1414

15-
### How to install
16-
To install NBomber via NuGet, run this command in NuGet package manager console:
17-
```code
18-
PM> Install-Package NBomber
19-
```
20-
21-
### Documentation
22-
Documentation is located [here](https://nbomber.com/docs/overview/).
23-
24-
### Run test scenario
25-
![how to run a scenario gif](https://nbomber.com/assets/images/nbomber_v2_console-6a596abc247223cefefa397c62e620f4.gif)
26-
27-
### View report
28-
![view report](https://raw.githubusercontent.com/PragmaticFlow/NBomber/dev/assets/nbomber_report.jpg)
29-
30-
### Analyze trends
31-
![analyze trends](https://github.com/PragmaticFlow/NBomber/blob/dev/assets/influx_trends.png)
15+
### Links
16+
- [Main web page](https://nbomber.com/)
17+
- [Documentation](https://nbomber.com/docs/getting-started/overview/)
18+
- [Chat](https://gitter.im/nbomber/community)
19+
- [Patreon](https://www.patreon.com/nbomber) - We appreciate every little donation. If everyone we've ever helped gave back just small donation a month, we'd be able to bring you NBomber for years and years to come.
20+
If you or your company are using NBomber and willing to help keep the project sustainable, please donate via [Patreon](https://www.patreon.com/nbomber).
3221

3322
### Why we build NBomber and what you can do with it?
34-
35-
1. The main reason behind NBomber is to provide a **lightweight** framework for writing load tests which you can use to test literally **any** system and simulate **any** production workload. We wanted to provide only a few abstractions so that we could describe any type of load and still have a simple, intuitive API.
36-
2. Another goal is to provide building blocks to validate your POC (proof of concept) projects by applying any complex load distribution.
37-
3. With NBomber you can test any PULL or PUSH system (HTTP, WebSockets, GraphQl, gRPC, SQL Database, MongoDb, Redis etc).
23+
The main reason behind NBomber is to provide a lightweight framework for writing load tests which you can use to test literally any system and simulate any production workload. We wanted to provide only a few abstractions so that we could describe any type of load and still have a simple, intuitive API.
24+
Another goal is to provide building blocks to validate your POC (proof of concept) projects by applying any complex load distribution.
25+
With NBomber you can test any PULL or PUSH system (HTTP, WebSockets, GraphQl, gRPC, SQL Databse, MongoDb, Redis etc).
26+
With NBomber you can convert some of your integration tests to load tests easily.
3827

3928
NBomber as a modern framework provides:
4029
- Zero dependencies on protocol (HTTP/WebSockets/AMQP/SQL)
4130
- Zero dependencies on semantic model (Pull/Push)
4231
- Very flexible configuration and dead simple API
4332
- Cluster support
44-
- Reporting sinks
33+
- Real-time reporting
4534
- CI/CD integration
4635
- Plugins/extensions support
4736
- Data feed support
4837

4938
### What makes it very simple?
50-
NBomber is a foundation of building blocks which you can use to describe your test scenario, run it and get reports.
51-
52-
```fsharp
53-
// FSharp example
54-
55-
let step = Step.create("step", fun context -> task {
56-
57-
// you can do any logic here: go to http, websocket etc
58-
do! Task.Delay(seconds 1)
59-
return Response.Ok()
60-
})
61-
62-
Scenario.create "scenario" [step]
63-
|> NBomberRunner.registerScenario
64-
|> NBomberRunner.run
65-
```
39+
One of the design goals of NBomber is to keep API as minimal as possible.
40+
Because of this, NBomber focuses on fully utilizing programming language(C#/F#) constructs instead of reinventing a new DSL that should be learned.
41+
In other words, if you want to write a for loop, you don't need to learn a DSL for this.
6642

6743
```csharp
68-
// CSharp example
69-
70-
var step = Step.Create("step", async context =>
44+
var scenario = Scenario.Create("hello_world_scenario", async context =>
7145
{
72-
// you can do any logic here: go to http, websocket etc
46+
// you can define and execute any logic here,
47+
// for example: send http request, SQL query etc
48+
// NBomber will measure how much time it takes to execute your logic
49+
await Task.Delay(1_000);
7350

74-
await Task.Delay(TimeSpan.FromSeconds(1));
7551
return Response.Ok();
76-
});
77-
78-
var scenario = ScenarioBuilder.CreateScenario("scenario", step);
52+
})
53+
.WithLoadSimulations(
54+
Simulation.Inject(rate: 10,
55+
interval: TimeSpan.FromSeconds(1),
56+
during: TimeSpan.FromSeconds(30))
57+
);
7958

8059
NBomberRunner
8160
.RegisterScenarios(scenario)
@@ -85,7 +64,6 @@ NBomberRunner
8564
### Examples
8665
|Language|Example|
8766
|--|--|
88-
| F# | [link](https://github.com/PragmaticFlow/NBomber/tree/dev/examples/FSharpProd) |
8967
| C# | [link](https://github.com/PragmaticFlow/NBomber/tree/dev/examples/CSharpProd) |
9068

9169
### Contributing

0 commit comments

Comments
 (0)