HTTP 壓測工具:wrk
wrk 是當(dāng)今最流行的 HTTP 壓測工具沛慢,用于模擬高并發(fā)情況下的 HTTP 請求勇凭。wrk 使用 Lua 作為腳本語言,可以通過編寫 Lua 腳本來自定義請求的參數(shù)和邏輯。只支持linux埋合。wg/wrk: Modern HTTP benchmarking tool
使用示例:
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
HTTP 壓測工具:ab
ab(Apache Bench)是Apache自帶的一個壓力、性能測試工具,用于模擬多個并發(fā)訪問,測試服務(wù)器的性能萄传。
使用示例:
ab -n 1000 -c 50 http://127.0.0.1:8080/index.html
gRPC 壓測工具:ghz
ghz是一個命令行程序甚颂,用于負(fù)載測試和gRPC服務(wù)的基準(zhǔn)測試。Simple gRPC benchmarking and load testing tool
ghz --insecure \
--proto=./proto/greet.proto \
--call unary.Greeter.greet \
-c 50 \
-n 100000 \
-d '{"name":"Joe"}' \
0.0.0.0:3456
HTTP, WebSockets, gRPC 壓測工具:k6(重點推薦)
k6支持HTTP, WebSockets, gRPC秀菱。k6使用JavaScript作為腳本語言振诬,內(nèi)置了豐富的功能和模塊,能夠滿足各種復(fù)雜的HTTP測試需求衍菱。赶么。
創(chuàng)建一個測試腳本hello-world.js:
import http from 'k6/http';
export default function () {
http.get('https://www.baidu.com/');
}
模擬 100 個虛擬用戶(VU),連續(xù)壓測 30 秒:
k6 run --vus 100 --duration 30s hello-world.js
MySQL自帶壓測工具:MySQL-SLAP
MySQL 自帶的測試工具脊串,用于生成 SQL 負(fù)載并測量性能辫呻。下面的測試50并發(fā)清钥、一共執(zhí)行10000 次請求、重復(fù)10次:
$ mysqlslap --concurrency=50 --number-of-queries=10000 --iterations=10 --query="SELECT * FROM your_table" --create-schema=your_db --user=root --password=yourpassword
Benchmark
Average number of seconds to run all queries: 0.045 seconds # 重復(fù)10次測試的平均
Minimum number of seconds to run all queries: 0.030 seconds
Maximum number of seconds to run all queries: 0.060 seconds
Number of clients running queries: 50