Ohayou (おはよう)

Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation.

Usage

Usage: oha [FLAGS] [OPTIONS] <url>

Options

OptionDescription
-n <N_REQUESTS>Number of requests to run. [default: 200]
-c <N_CONNECTIONS>Number of connections to run concurrently. You may should increase limit to number of open files for larger -c. [default: 50]
-p <N_HTTP2_PARALLEL>Number of parallel requests to send on HTTP/2. oha will run concurrent workers in total. [default: 1]
-z <DURATION>Duration of application to send requests. If duration is specified, n is ignored. On HTTP/1, When the duration is reached, ongoing requests are aborted and counted as “aborted due to deadline”. You can change this behavior with -w option. Currently, on HTTP/2, When the duration is reached, ongoing requests are waited. -w option is ignored.
-w, --wait-ongoing-requests-after-deadlineWhen the duration is reached, ongoing requests are waited
-q <QUERY_PER_SECOND>Rate limit for all, in queries per second (QPS)
--burst-delay <BURST_DURATION>Introduce delay between a predefined number of requests. Note: If qps is specified, burst will be ignored
--burst-rate <BURST_REQUESTS>Rates of requests for burst. Default is 1. Note: If qps is specified, burst will be ignored
--rand-regex-urlGenerate URL by rand_regex crate but dot is disabled for each query e.g. http://127.0.0.1/[a-z][a-z][0-9]. Currently dynamic scheme, host and port with keep-alive are not works well.
--max-repeat <MAX_REPEAT>A parameter for the ‘—rand-regex-url’. The max_repeat parameter gives the maximum extra repeat counts the x*, x+ and x{n,} operators will become. [default: 4]
--dump-urls <DUMP_URLS>Dump target Urls <DUMP_URLS> times to debug --rand-regex-url
--latency-correctionCorrect latency to avoid coordinated omission problem. It’s ignored if -q is not set.
--no-tuiNo realtime tui
-j, --jsonPrint results as JSON
--fps <FPS>Frame per second for tui. [default: 16]
-m, --method <METHOD>HTTP method [default: GET]
-H <HEADERS>Custom HTTP header. Examples: -H "foo: bar"
-t <TIMEOUT>Timeout for each request. Default to infinite.
-A <ACCEPT_HEADER>HTTP Accept Header.
-d <BODY_STRING>HTTP request body.
-D <BODY_PATH>HTTP request body from file.
-T <CONTENT_TYPE>Content-Type
-a <BASIC_AUTH>Basic authentication, username:password
--http-version <HTTP_VERSION>HTTP version
--http2Use HTTP/2. Shorthand for --http-version=2
--host <HOST>HTTP Host header
--disable-compressionDisable compression.
-r, --redirect <REDIRECT>Limit for number of Redirect. Set 0 for no redirection. Redirection isn’t supported for HTTP/2. [default: 10]
--disable-keepaliveDisable keep-alive, prevents re-use of TCP connections between different HTTP requests. This isn’t supported for HTTP/2.
--no-pre-lookupNot perform a DNS lookup at beginning to cache it
--ipv6Lookup only ipv6.
--ipv4Lookup only ipv4.
--insecureAccept invalid certs.
--connect-to <CONNECT_TO>Override DNS resolution and default port numbers with strings like ‘example.org:443:localhost:8443’
--disable-colorDisable the color scheme.
--unix-socket <UNIX_SOCKET>Connect to a unix socket instead of the domain in the URL. Only for non-HTTPS URLs.
--stats-success-breakdownInclude a response status code successful or not successful breakdown for the time histogram and distribution statistics
--db-url <DB_URL>Write succeeded requests to sqlite database url E.G test.db