压测利器 Apache Bench:快速上手,服务器性能一测就“露馅”!
IT资讯 2025-11-26 19:18:08
0
理论上 QA 需要在测试用例中覆盖性能验证,露馅但现实情况往往是压测 :一旦线上出问题,开发、利器测试、速上手服运维一个都跑不了。露馅
所以,压测作为开发同学 ,利器给自己的速上手服开发机装个压测工具并不多余。除了大家熟悉的露馅 JMeter ,本篇要介绍一款小巧高效的压测命令行工具 —— Apache Bench(简称 ab) 。它没有复杂的利器 GUI,却能精准揭示服务器在压力下的源码下载速上手服表现 ,轻量、露馅直接 、压测开箱即用 ,利器是开发者压测的“入门必修课”。
Apache Bench 是什么
Apache Bench(ab)是 Apache HTTP Server 项目自带的一个压力测试工具,主要用于评估 Web 服务器在不同负载下的响应能力。它的优势在于 :
命令行即开即用:一条命令就能让服务器“压力山大” 。全方位指标输出:响应时间、源码库吞吐量 、失败请求数 、分布统计等 ,一目了然 。轻量便携 :无需复杂配置,也不用安装额外依赖。换句话说,运维要做容量规划,测试要找瓶颈,开发要验证优化效果,ab 都是随手能掏出来的“小钢炮” 。
安装方式
安装 ab 的方式因系统不同而异,常见操作系统的模板下载安装方式如下:
Linux (Debian/Ubuntu)sudo apt-get install apache2-utilsLinux (CentOS/RHEL)sudo yum install httpd-tools # 或者 dnfmacOS 一般系统自带,直接执行 : ab -V如果提示未找到,可以用 Homebrew :
brew install apache2-utils1. Windows 建议在 WSL 环境下运行,或者在 Apache HTTP Server 的 /bin 目录下找到 ab.exe 。安装完成后,在任何目录下执行 ab -V 能看到版本号,就说明准备就绪了。
入门示例 :压测 GET 接口
假设我们在本地 Spring Boot 项目 /project/demo 下写了一个简单接口:
package com.icoderoad.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/demo") public String demo() { return "this is a demo"; } }启动项目后 ,我们用 ab 执行压测:
复制ab-n1000-c100 http://localhost:8080/demo1. -n 1000:一共发起 1000 个请求 。-c 100 :模拟 100 个并发用户 。http://localhost:8080/demo:目标地址。运行后 ,ab 会输出一份完整报告,包括请求成功数 、失败数、香港云服务器QPS(每秒请求数)、响应耗时、分位数分布等。比如 Requests per second: 120.50 [#/sec] 就直观地告诉你:服务器每秒能处理多少请求