https://github.com/ashwin-rajeev/boom
HTTP(S) benchmarking tool written in Golang.
https://github.com/ashwin-rajeev/boom
api api-rest concurrent-programming golang goroutine-pool goroutines load-testing
Last synced: 2 months ago
JSON representation
HTTP(S) benchmarking tool written in Golang.
- Host: GitHub
- URL: https://github.com/ashwin-rajeev/boom
- Owner: Ashwin-Rajeev
- License: bsd-3-clause
- Created: 2019-05-09T18:00:22.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-01T10:46:03.000Z (almost 5 years ago)
- Last Synced: 2025-01-03T15:45:42.137Z (4 months ago)
- Topics: api, api-rest, concurrent-programming, golang, goroutine-pool, goroutines, load-testing
- Language: Go
- Homepage:
- Size: 40 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Boom
HTTP(S) benchmarking tool written in Golang
[](https://travis-ci.com/Ashwin-Rajeev/boom) [](https://godoc.org/github.com/Ashwin-Rajeev/boom) [](https://goreportcard.com/report/github.com/Ashwin-Rajeev/boom) [](https://codecov.io/gh/Ashwin-Rajeev/boom) [](https://github.com/Ashwin-Rajeev/boom/blob/master/LICENSE) 
Boom is a HTTP(S) benchmarking tool written in Golang. Because of its lightning fast performance you can test any real world applications using this wonderfull benchmarking tool.
### Coded With Language
* [Golang](https://golang.org/)## Getting Started
### Installing
To get the latest and greatest run:```
go get -u github.com/Ashwin-Rajeev/boom
```## Usage
```
Usage: boom []-help know more about the usage of boom (Default value = false)
-d Request duration (Default value = 5)
-g Number of concurrent connections (Default value = 5)
-b Request body file name (Relative path) (Default value = )
-h header values separated with ';' (Default value = )
-m Request method (Default value = GET)
-multi Use multiple request mode (Default value = false)
-to Request time out in milli seconds (Default value = 1000)```
## Example
### Single request
> boom -d 10 -g 20 https://www.google.com/
Boom running for 10s over the api: https://www.google.com/
20 Active Concurrent connections!
10 / 10 [--------------------------------------------------------------] 100.00%| Statistics | value |
| ================================== |
+ Total Reqs 1424
+ Fastest Reqs 128.59929ms
+ Slowest Reqs 273.003861ms
+ Average Reqs 1.026262071s
+ Error Count 0
― ― ― ― ― ― ― ― ― ― ―― ― ― ― ― ― ― ― ―
| Status Code | Count |
| ================================== |
+ 1XX 0
+ 2XX 1424
+ 3XX 0
+ 4XX 0
+ 5XX 0
+ Others 0
― ― ― ― ― ― ― ― ― ― ―― ― ― ― ― ― ― ― ―### Single POST request with body
> boom -d 10 -g 20 -m POST -b body.json https://www.sample.com/
Boom running for 10s over the api: https://www.google.com/
20 Active Concurrent connections!
10 / 10 [--------------------------------------------------------------] 100.00%| Statistics | value |
| ================================== |
+ Total Reqs 1424
+ Fastest Reqs 128.59929ms
+ Slowest Reqs 273.003861ms
+ Average Reqs 1.026262071s
+ Error Count 0
― ― ― ― ― ― ― ― ― ― ―― ― ― ― ― ― ― ― ―
| Status Code | Count |
| ================================== |
+ 1XX 0
+ 2XX 1600
+ 3XX 0
+ 4XX 0
+ 5XX 0
+ Others 0
― ― ― ― ― ― ― ― ― ― ―― ― ― ― ― ― ― ― ―### Multiple requests using multi request mode
> boom --mul -d 10 -g 20 -b body.json
Boom running for 10s over the api:
20 Active Concurrent connections!
10 / 10 [--------------------------------------------------------------] 100.00%| Statistics | value |
| ================================== |
+ Total Reqs 1424
+ Fastest Reqs 128.59929ms
+ Slowest Reqs 273.003861ms
+ Average Reqs 1.026262071s
+ Error Count 0
― ― ― ― ― ― ― ― ― ― ―― ― ― ― ― ― ― ― ―
| Status Code | Count |
| ================================== |
+ 1XX 0
+ 2XX 1600
+ 3XX 0
+ 4XX 0
+ 5XX 0
+ Others 0
― ― ― ― ― ― ― ― ― ― ―― ― ― ― ― ― ― ― ―sample_request.json
```[
{
"url": "http://www.sample.com",
"method": "PUT",
"body": {
"a": "1",
"b": "2"
},
"header": {
"key": "value"
}
},
{
"url": "http://www.sample.com",
"method": "POST",
"body": {
"a": 1,
"b": 2
},
"header": {
"key1": "value1",
"key2": "value2"
}
}
]
```
## PrerequisitesGolang should be installed on your computer, boom is compatible with go1.12 and above
## Roadmap
See the [open issues](https://github.com/Ashwin-Rajeev/boom/issues) for a list of proposed features (and known issues).
## Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Email : [[email protected]]([email protected])
GitHub : [https://github.com/Ashwin-Rajeev](https://github.com/Ashwin-Rajeev)
Website : [https://ashwinrajeev.com](https://ashwinrajeev.com)