天天看點

http 測試工具 linux,一款高性能的HTTP負載測試工具 Vegeta

什麼是 Vegeta

Vegeta 是一款用 Go 語言編寫的多功能的 HTTP 負載測試工具,Vegeta 提供了指令行工具和一個開發庫。

Vegeta官方位址下載下傳,目前最新版本是vegeta 8.0.0。

http 測試工具 linux,一款高性能的HTTP負載測試工具 Vegeta

安裝 Vegeta

Vegeta 安裝非常簡單,由于 Go 語言良好的跨平台性,可以直接下載下傳官方的預編譯版本後開箱即用。

1.預編譯版本

這裡以 Linux 版本為例:

$ wget https://github.com/tsenart/vegeta/releases/download/v8.0.0/vegeta-8.0.0-linux-amd64.tar.gz

$ tar xzvf vegeta-8.0.0-linux-amd64.tar.gz

$ mv vegeta  /usr/local/bin/

如果你使用的是其它平台,可根據實際情況在官網下載下傳頁面下載下傳對應版本解壓後就可以使用。

2.macOS

$ brew install vegeta

Vegeta 用法

$ vegeta --help

Usage: vegeta [global flags] [command flags]

global flags:

-cpus int

使用 CPU 的數量 (預設為 4 個)

-profile string

指定在執行期間啟用哪個分析器,支援 cpu 和 heap。

-version

列印版本并退出。

attack command:

-body string

指定請求主體檔案裡的内容。

-cert string

指定用于 HTTPS 請求的 PEM 格式的用戶端證書檔案。如果 -key 未指定,它會被設定為這個标志的值。

-connections int

指定每個目标主機打開的空閑連接配接的最大數目,預設值為 10000。

-duration duration

指定發送請求到目标主機的時長,用 0 表示永久。

-header value

指定目标的請求頭,可以重複指定多個請求頭。

-http2

指定是否向支援的伺服器發送 HTTP/2 請求,預設為:true。

-insecure

指定是否忽略無效的伺服器 TLS 證書。

-keepalive

指定是否使用持久連結,預設值為:true。

-key string

指定 HTTPS 請求中使用的 PEM 編碼的 SSL 用戶端證書私鑰檔案。

-laddr value

指定要使用的本地 I P位址,預設值為:0.0.0.0。

-lazy

指定是否使用延遲模式讀取目标。

-output string

指定輸出檔案的位置,預設為标準輸出。

-rate uint

指定每秒鐘對目标發送的請求數,預設值為:50。

-redirects int

指定每個請求的重定向的最大次數,預設為 10 次。當值為 -1, 不會遵循重定向但響應标記為成功。

-root-certs value

指定可信的 TLS 根證書檔案,多個的情況下使用逗号分隔。如果未指定,使用系統預設的 CA 證書。

-targets string

指定目标檔案,預設為标準輸入。

-timeout duration

指定每個請求的逾時時間,預設值為 30s。

-workers uint

指定初始化程序數量,預設值為 10。

report command:

-inputs string

指定報告輸入檔案,預設為标準輸入。

-output string

指定報告輸出檔案,預設為标準輸出。

-reporter string

指定要生成的報告的格式,支援 text,json, plot, hist[buckets]。預設為文本。

dump command:

-dumper string

指定轉存檔案,支援 json, csv 格式。預設為 json 格式。

-inputs string

指定要轉存的輸入檔案,預設為标準輸入,指定多個用逗号分隔。

-output string

指定要轉存的輸出檔案,預設為标準輸出。

Vegeta更進一步的使用可以參考Vegeta官方位址。

和Vegeta類似的Alex

如果你覺得指令行下使用 Vegeta 比較複雜的話,你還可以使用 Alex 項目。Alex 是一個基于 Vegeta Library 和 Boom 封裝的壓力測試 Web UI,Vegeta 提供穩定的 QPS 壓力源,Boom 提供穩定的并發數壓力源。

相關主題