Stress testing tool for web servers, written in elixir
Elixir
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.gitignore
LICENSE
README.md
mix.exs
mix.lock

README.md

Excalit

License

This software is under the Apache2 License. See the LICENSE file.

About

Stress testing tool for web servers, written in elixir.

Will launch N concurrent connections, make a request, and measure how much time took to:

  • Open the connection
  • Receive the response

Sample run

$ mix excalit --url http://localhost:8080/ --concurrent 2

12:19:27.696 [info] Launching: 2
12:19:27.732 [info] 2: open: 15680 us
12:19:27.732 [info] 1: open: 15796 us
12:19:27.734 [info] 2: send: 2079 us
12:19:27.734 [info] 1: send: 2043 us
12:19:27.734 [info] 2: total: 19402 us
12:19:27.734 [info] 2: recv: 200|323|420 us
12:19:27.734 [info] 2: Finished
12:19:27.735 [info] 1: total: 20227 us
12:19:27.735 [info] 1: recv: 200|323|1172 us
12:19:27.735 [info] 1: Finished
12:19:27.735 [info] TCP connect time best: 2: 15680 us
12:19:27.736 [info] TCP connect time worst: 1: 15796 us
12:19:27.736 [info] TCP connect time 50% took: 15680 us
12:19:27.736 [info] TCP connect time 100% took: 15796 us
12:19:27.736 [info] Recv data best: 2: 420 us
12:19:27.736 [info] Recv data worst: 1: 1172 us
12:19:27.736 [info] Recv data 50% took: 420 us
12:19:27.737 [info] Recv data 100% took: 1172 us
12:19:27.737 [info] Total: 34847 us
  • The operations are measured in microseconds.
  • The "open: xxx us" line indicates how much it took to establish the tcp connection.
  • The "recv: .." line indicates (separated by |):
  • HTTP status code.
  • Body length.
  • Time it took to receive the data.

Defaults

  • GET method.
  • HTTP 1.0.
  • 1 connection.
  • 0 milliseconds of delay when spawning childs.

Options

  • --http11: HTTP version.
  • --method get|post|put|delete|head|options|connect: HTTP method to use.
  • --concurrent n: Number of concurrent connections.
  • --delay n: Delay in milliseconds between each child spawn.