理论上 QA 需要在测试用例中覆盖性能验证,露馅但现实情况往往是压测:一旦线上出问题,开发
、利器测试、速上手服运维一个都跑不了。露馅 所以,压测作为开发同学,利器给自己的速上手服开发机装个压测工具并不多余
。除了大家熟悉的露馅 JMeter,本篇要介绍一款小巧高效的压测命令行工具 —— Apache Bench(简称 ab)
。它没有复杂的利器 GUI,却能精准揭示服务器在压力下的高防服务器速上手服表现
,轻量
、露馅直接 、压测开箱即用
,利器是开发者压测的“入门必修课”。 Apache Bench(ab)是 Apache HTTP Server 项目自带的一个压力测试工具
,主要用于评估 Web 服务器在不同负载下的响应能力 。它的优势在于
: 换句话说,运维要做容量规划,测试要找瓶颈,开发要验证优化效果,ab 都是随手能掏出来的“小钢炮”。 安装 ab 的方式因系统不同而异
,常见操作系统的免费模板安装方式如下: 如果提示未找到,可以用 Homebrew: 安装完成后,在任何目录下执行 ab -V 能看到版本号,就说明准备就绪了。 假设我们在本地 Spring Boot 项目 /project/demo 下写了一个简单接口
: 启动项目后
,我们用 ab 执行压测
: 运行后,ab 会输出一份完整报告,包括请求成功数、失败数
、建站模板QPS(每秒请求数)、响应耗时、分位数分布等 。比如 Requests per second: 120.50 [#/sec] 就直观地告诉你 :服务器每秒能处理多少请求 。 仅靠 GET 请求显然不够
,ab 同样支持 POST 压测
。假设我们有一个接口: 我们准备一个 req.json 文件: 执行命令: 常用参数说明 : 通过灵活组合参数
,源码下载ab 能满足大部分日常压测场景。 压测的意义在于数据驱动,而不是“感觉”
。 一句话:压测是发现性能问题的显微镜,云计算也是验证优化效果的试金石 。 压测是保障系统稳定性的最后一道关口 ,而 Apache Bench 就像一把“小刀”,虽然简洁,却能切中要害。 它没有 JMeter 那么重型 ,但足够高效、易上手
。对于开发者而言
,熟练掌握 ab 能在开发阶段就提前发现并规避潜在问题
,把性能隐患扼杀在萌芽阶段 。 所以,下次上线前,不妨在 /opt/java/tools/ab 下敲几条命令 ,看看你的服务能不能扛住真实流量的冲击
。 毕竟 ,没有经过压测的服务,就像未经考验的桥梁,随时可能在负荷面前“露馅”。Apache Bench 是什么
安装方式
入门示例
:压测 GET 接口
进阶用法:POST 与更多参数
为什么要压测
实战与注意事项
不要随便压生产 :ab 发起的流量可能直接拖垮线上服务,务必在测试环境进行。循序渐进
:从 -c 1 开始 ,逐步加压,不要一上来就是“百万并发”
。关注失败请求 :Failed requests 一定要看清原因,是超时还是 5xx 。多次对比:单次压测结果可能受网络波动影响,多次取平均更可靠
。适用范围有限:ab 适合高频
、简单请求,不适合复杂业务链路(如登录、跳转、多步骤交互),这时需要 JMeter、Locust 或 k6。 结论