用途:验证系统在负载下的延迟、吞吐与稳定性目标,并在不达标时定位瓶颈。资料假设使用者已能编写测试代码,重点放在让压测数字失真的测量陷阱,以及工具与负载形状的选型标准。
主要能力:讲解开放与封闭负载模型(封闭模型固定 VU 会自我限流、掩盖过载;开放模型固定到达率才能找到真实拐点)、协调遗漏的成因与修正(wrk2 -R、k6 到达率执行器、HdrHistogram)、百分位而非均值、Little 定律校验、拐点与崩溃、预热与 JIT/GC、客户端与服务器分离测量、连接复用与思考时间、真实数据与基数。给出 smoke/load/stress/spike/soak/breakpoint 六种负载形状及 k6 配置示例,并介绍 k6、Locust、JMeter、Gatling、artillery 及 wrk2/oha/hey 等命令行工具,含 API 混合读写、GraphQL、WebSocket 场景模式与数据库基准测试。
使用方式:k6 用 k6 run -e API_URL=... script.js,可加 --out experimental-prometheus-rw 或 --out influxdb=... 输出到 Grafana;Locust 用 locust -f lf.py --headless -u 500 -r 50 -t 5m,分布式用 --master 与 --worker;JMeter 用 jmeter -n -t plan.jmx -l results.jtl -e -o report/;Gatling 用 injectOpen/injectClosed;artillery 用 YAML 的 arrivalRate 与 ensure 断言。
适用场景:API 与协议压测、容量与拐点评估、尖峰恢复与自动扩缩验证、长时间浸泡查泄漏、数据库基准。
限制:资料未提供具体收费、价格与平台支持信息;部分工具扩展(如 xk6 的 gRPC/SQL/浏览器/Kafka)不在核心二进制内;ab 单线程且默认无 keep-alive,仅适合简单可达性检查。