2024-07-05 02:52:25 +04:00
2024-07-05 02:49:02 +04:00
2024-06-02 01:04:34 +04:00
2024-06-01 00:20:19 +04:00
2024-06-01 00:20:19 +04:00
2024-06-01 19:25:30 +04:00
2024-05-25 20:26:20 +04:00
2024-05-25 20:26:20 +04:00
2024-05-25 20:26:20 +04:00
2024-06-02 01:21:37 +04:00
2024-06-01 00:24:28 +04:00
2024-07-05 02:52:25 +04:00

Dodo is a simple and easy-to-use HTTP benchmarking tool.

Installation

You can grab binaries in the releases section.

Usage

You can use Dodo with CLI arguments, a JSON config file, or both. If you use both, CLI arguments will always override JSON config arguments if there is a conflict.

1. CLI

Send 1000 GET requests to https://example.com with 10 parallel dodos (threads) and a timeout of 2000 milliseconds:

dodo -u https://example.com -m GET -d 10 -r 1000 -t 2000

2. JSON config file

You can find an example config structure in the config.json file:

{
    "method": "GET",
    "url": "https://example.com",
    "timeout": 10000,
    "dodos_count": 5,
    "request_count": 1000,
    "params": {},
    "headers": {},
    "cookies": {},
    "body": "",
    "proxies": [
        {
            "url": "http://example:8080",
            "username": "username",
            "password": "password"
        },
        {
            "url": "http://example.com:8080"
        }
    ]
}

Send 1000 GET requests to https://example.com with 5 parallel dodos (threads) and a timeout of 10000 milliseconds:

dodo -c /path/config.json

3. Both (CLI & JSON)

Override the config file arguments with CLI arguments:

dodo -c /path/config.json -u https://example.com -m GET -d 10 -r 1000 -t 2000

CLI and JSON Config Parameters

Parameter JSON config file CLI Flag CLI Short Flag Type Description Default
Config file - --config-file -c String Path to the JSON config file -
URL url --url -u String URL to send the request to -
Method method --method -m String HTTP method GET
Request count request_count --request-count -r Integer Total number of requests to send 1000
Dodos count (Threads) dodos_count --dodos-count -d Integer Number of dodos (threads) to send requests in parallel 1
Timeout timeout --timeout -t Integer Timeout for canceling each request (milliseconds) 10000
Params params - - Key-Value {string: string} Request parameters -
Headers headers - - Key-Value {string: string} Request headers -
Cookies cookies - - Key-Value {string: string} Request cookies -
Body body - - String Request body -
Proxy proxies - - List[Key-Value {string: string}] List of proxies (will check active proxies before sending requests) -

Examples

dodo_example

Description
Simple, easy-to-use HTTP benchmarking tool
Readme MIT 1.1 MiB
Languages
Go 99.6%
Dockerfile 0.4%