Strainbot
About
Strainbot is an API Performance Testing and Analysis Tool. Using Strainbot you can perform a number of concurrent request to an endpoint and it will show you detailed analysis of time taken to complete all the requests. Basic functionalities are ready to use but it is a work under progress, so some functionalities are not yet implemented.
Batch mode is still under development
Feel free to fork this repository, create pull requests, feature request and report bugs.
Local Compilation
- Golang compiler must be installed
- No extra dependencies other than standard library is required.
- Run
./compile.sh
Usage
To see list of all arguments and parameters required.
strainbot -h
strainbot --help
Flags and Arguments
-l
If set, shows full logs.
-log-file <path_to_file>
File to write logs.
-base
Base URL of the API.
-body
Body to send in every request. (Valid JSON) (default "{}")
-body-file <path_to_file>
Path to json file to use as body content.
-ep
Endpoint of API to hit. [URL = BASE + ENDPOINT]
-headers
Headers for request in form of key-value pair. (Valid JSON) (default "{}")
-hit-start
Starting value of hit range. ([START, STOP, STEP])
-hit-step
Step size to use for excuting range. ([START, STOP, STEP]) (default 10)
-hit-stop
Stoping value of hit range. ([START, STOP, STEP])
-hits
Number of concurrent hits to perform. (default 10, then do not provide these flags--hit-[start|stop|step])
-method
Comma separated list of methods to use. Do not include space in list
Example
./strainbot -s -l --method GET --base https://jsonplaceholder.typicode.com --ep /todos/1 --headers '{"h1" : "v1", "h2" : "v2"}' --log-file logs.sb --hit-start 10 --hit-stop 100 --hit-step 10