---
obj: application
repo: https://github.com/hatoo/oha
rev: 2024-10-22
---

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

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

### Options

| Option                                       | Description                                                                                                                                                                                                                                                                                                                                               |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-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 $c * p$ 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-deadline` | When 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-url`                           | Generate 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-correction`                       | Correct latency to avoid coordinated omission problem. It's ignored if `-q` is not set.                                                                                                                                                                                                                                                                   |
| `--no-tui`                                   | No realtime tui                                                                                                                                                                                                                                                                                                                                           |
| `-j, --json`                                 | Print 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                                                                                                                                                                                                                                                                                                                                              |
| `--http2`                                    | Use HTTP/2. Shorthand for `--http-version=2`                                                                                                                                                                                                                                                                                                              |
| `--host <HOST>`                              | HTTP Host header                                                                                                                                                                                                                                                                                                                                          |
| `--disable-compression`                      | Disable compression.                                                                                                                                                                                                                                                                                                                                      |
| `-r, --redirect <REDIRECT>`                  | Limit for number of Redirect. Set 0 for no redirection. Redirection isn't supported for HTTP/2. [default: 10]                                                                                                                                                                                                                                             |
| `--disable-keepalive`                        | Disable keep-alive, prevents re-use of TCP connections between different HTTP requests. This isn't supported for HTTP/2.                                                                                                                                                                                                                                  |
| `--no-pre-lookup`                            | *Not* perform a DNS lookup at beginning to cache it                                                                                                                                                                                                                                                                                                       |
| `--ipv6`                                     | Lookup only ipv6.                                                                                                                                                                                                                                                                                                                                         |
| `--ipv4`                                     | Lookup only ipv4.                                                                                                                                                                                                                                                                                                                                         |
| `--insecure`                                 | Accept invalid certs.                                                                                                                                                                                                                                                                                                                                     |
| `--connect-to <CONNECT_TO>`                  | Override DNS resolution and default port numbers with strings like 'example.org:443:localhost:8443'                                                                                                                                                                                                                                                       |
| `--disable-color`                            | Disable 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-breakdown`                  | Include 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                                                                                                                                                                                                                                                                                               |