1、壓測工具vegetalinux
一、介紹git
Vegeta 是一個用 Go 語言編寫的多功能的 HTTP 負載測試工具,它提供了命令行工具和一個開發庫。 github
官方地址:https://github.com/tsenart/vegetajson
二、安裝 Vegetabash
wget https://github.com/tsenart/vegeta/releases/download/v7.0.3/vegeta-7.0.3-linux-amd64.tar.gz tar xf vegeta-7.0.3-linux-amd64.tar.gz mv vegeta /usr/local/bin/ #查看版本 vegeta -version
三、Vegeta 用法(經常使用參數)服務器
-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。 -inputs string: 指定報告輸入文件,默認爲標準輸入。 -output string: 指定報告輸出文件,默認爲標準輸出。 -reporter string: 指定要生成的報告的格式,支持 text,json, plot, hist[buckets]。默認爲文本。dump command: -dumper string: 指定轉存文件,支持 json, csv 格式。默認爲 json 格式。 -inputs string: 指定要轉存的輸入文件,默認爲標準輸入,指定多個用逗號分隔。 -output string: 指定要轉存的輸出文件,默認爲標準輸出。
四、Vegeta 使用實例
#使用標準輸入進行壓測並生成報告 [root@localhost1]echo "GET http://10.0.0.141"| vegeta attack -rate=500 -connections=1 -duration=1s | tee results.bin | vegeta report Requests(請求) [total(請求總數), rate(請求速度)] 500, 501.00 Duration(攻擊) [total(總共攻擊與等待的時間), attack(攻擊的時間), wait(等待時間)] 998.571503ms, 997.999647ms, 571.856µs Latencies(執行時間) [mean(單個請求的平均值), 50(50%請求達到的時間), 95, 99, max(單個最大請求時間)] 1.088556ms, 561.997µs, 2.414125ms, 12.116341ms, 22.107566ms Bytes In(請求的大小(字節)) [total(請求總大小), mean(請求平均大小)] 306000, 612.00 Bytes Out(字節輸出) [total(總輸出), mean(平均輸出)] 0, 0.00 Success(請求成功率) [ratio(請求成功率)] 100.00% Status Codes [code(狀態碼):count(請求次數)] 200:500 Error Set:(錯誤集)
#通過測試感受效果不是很好(比ab強一些)工具