In the past I’ve always used Apache Bench, Fiddler or Visual Studio Load Testing to test the performance of my ASP.NET (Core) applications and API's. Recently I made the switch to Bombardier, a versatile HTTP benchmarking tool written in Go.
If you have Go Go installed on your system, you can install Bombardier using the following command:
go get -u github.com/codesenberg/bombardier
But you can also download a binary compatible to your OS directly from the releases without the need to install Go.
I already started my ASP.NET Core application:
Running the tool is quite easy. Invoke the bombardier command with the target URL and some extra parameters:
bombardier -c 100 -n 1000 –l http://localhost:5042/WeatherForecast
This command will send 1000 requests with 100 concurrent connections to your application.
Bombardier will provide detailed statistics:
- Reqs/sec: Requests per second.
- Latency: Average response time.
- Latency Distribution: Percentiles (50%, 75%, 90%, 95%, 99%) of response times.
You can customize Bombardier by adjusting parameters like concurrency, duration, and headers. Next step is to integrate Bombardier into our CI/CD pipeline or use it at scale with tools like Crank, but that is something I’ll leave for another post.