ali

Generate HTTP load and plot the results in real-time

Github星跟蹤圖

ali

codecov.io Code Coverage
Release
Go Doc

A load testing tool capable of performing real-time analysis, inspired by vegeta and jplot.

Screenshot

ali comes with an embedded terminal-based UI where you can plot the metrics in real-time, so lets you perform real-time analysis on the terminal.

Installation

Binary releases are available through here.

Via Homebrew

brew install nakabonne/ali/ali

Via APT

wget https://github.com/nakabonne/ali/releases/download/v0.5.2/ali_0.5.2_linux_amd64.deb
apt install ./ali_0.5.2_linux_amd64.deb

Via RPM

curl -OL https://github.com/nakabonne/ali/releases/download/v0.5.2/ali_0.5.2_linux_amd64.rpm
rpm -i ./ali_0.5.2_linux_amd64.rpm

Via AUR

Thanks to orhun, it's available as ali in the Arch User Repository.

yay -S ali

Via Go

Note that you may have a problem because it downloads an untagged binary.

go get github.com/nakabonne/ali

Via Docker

docker run --rm -it nakabonne/ali ali

Usage

Quickstart

ali http://host.xz

Replace http://host.xz with the target you want to issue the requests to.
Press Enter when the UI appears, then the attack will be launched with default options.

Options

ali -h
Usage:
  ali [flags] <target URL>

Flags:
  -b, --body string         A request body to be sent.
  -B, --body-file string    The path to file whose content will be set as the http request body.
      --buckets             Histogram buckets in comma-separated value (example: "10ms, 100ms, 500ms".
  -c, --connections int     Amount of maximum open idle connections per target host (default 10000)
      --debug               Run in debug mode.
  -d, --duration duration   The amount of time to issue requests to the targets. Give 0s for an infinite attack. (default 10s)
  -H, --header strings      A request header to be sent. Can be used multiple times to send multiple headers.
      --local-addr string   Local IP address. (default "0.0.0.0")
  -M, --max-body int        Max bytes to capture from response bodies. Give -1 for no limit. (default -1)
  -W, --max-workers uint    Amount of maximum workers to spawn. (default 18446744073709551615)
  -m, --method string       An HTTP request method for each request. (default "GET")
      --no-http2            Don't issue HTTP/2 requests to servers which support it.
  -K, --no-keepalive        Don't use HTTP persistent connection.
  -r, --rate int            The request rate per second to issue against the targets. Give 0 then it will send requests as fast as possible. (default 50)
  -t, --timeout duration    The timeout for each request. 0s means to disable timeouts. (default 30s)
  -v, --version             Print the current version.
  -w, --workers uint        Amount of initial workers to spawn. (default 10)

Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".

Charts

Press l (or h) to switch the displayed chart. On all charts, you can click and drag to select a region to zoom into.

Latency

Screenshot

The X-axis represents the request counts and the Y-axis represents latencies in milliseconds.

Percentiles

Screenshot

You can see how the 50th, 90th, 95th, and 99th percentiles are changing.

Bytes

TBA

Histogram

TBA

Features

Plot in real-time

Screenshot

Visualize the attack progress

This will help you during long tests.

Screenshot

Mouse support

With the help of mum4k/termdash can be used intuitively.

Screenshot

Acknowledgements

This project would not have been possible without the effort of many individuals and projects but especially vegeta for the inspiration and powerful API.
Besides, ali is built with termdash (as well as termbox-go) for the rendering of all those fancy graphs on the terminal.
They clearly stimulated an incentive to creation. A big "thank you!" goes out to all those who helped.

主要指標

概覽
名稱與所有者nakabonne/ali
主編程語言Go
編程語言Go (語言數: 3)
平台
許可證MIT License
所有者活动
創建於2020-09-12 00:11:21
推送於2023-10-21 07:19:22
最后一次提交2023-10-21 16:19:21
發布數29
最新版本名稱v0.7.5 (發布於 2021-11-09 23:52:40)
第一版名稱v0.1.0 (發布於 )
用户参与
星數3.9k
關注者數36
派生數151
提交數274
已啟用問題?
問題數68
打開的問題數25
拉請求數66
打開的拉請求數1
關閉的拉請求數4
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?