可使用apache bench(ab)等工具对thinkphp6.x接口进行并发压测:先安装ab并验证,再准备无逻辑基准接口、关闭调试模式,接着执行-n 1000 -c 50等命令测吞吐量,支持带authorization头的认证压测,高并发场景可补充wrk或siege多url轮询测试。

如果您需要评估ThinkPHP6.x应用在高并发请求下的响应能力与稳定性,可以使用Apache Bench(ab)工具对具体接口发起可控的并发压力测试。以下是针对ThinkPHP6.x项目执行接口并发压测的具体操作步骤:
一、安装并验证Apache Bench工具
Apache Bench是轻量级命令行HTTP压测工具,不依赖完整Apache服务,仅需安装配套工具包即可使用。其优势在于启动快、参数简洁,适合单接口快速验证吞吐量。
1、在Ubuntu/Debian系统中,执行:sudo apt update && sudo apt install apache2-utils。
2、在CentOS/RHEL/Rocky系统中,执行:sudo yum install httpd-tools 或 sudo dnf install httpd-tools。
3、验证是否安装成功:运行 ab -V,输出版本号(如This is ApacheBench, Version 2.3)即表示就绪。
二、准备ThinkPHP6.x测试接口与环境
为避免框架调试模式、日志写入、SQL查询日志等干扰真实性能数据,需确保测试接口处于最小开销路径,并关闭非必要中间件与监控组件。
1、在app/controller目录下新建TestController.php,定义无业务逻辑的基准接口:public function bench() { return json(['code' => 0, 'msg' => 'ok']); }。
2、确认该接口可通过URL正常访问,例如:http://your-domain.com/test/bench,且返回HTTP 200及标准JSON响应。
3、关闭ThinkPHP调试模式:将.env文件中APP_DEBUG=true改为APP_DEBUG=false;同时禁用trace、log_write等中间件。
三、执行基础并发压测命令
使用ab对ThinkPHP6.x接口发起指定请求数与并发数的压力测试,观察原始吞吐能力。该步骤用于建立性能基线,不涉及认证或会话状态。
1、执行最简测试命令:ab -n 1000 -c 50 http://your-domain.com/test/bench。
2、其中-n 1000表示总请求数为1000,-c 50表示最大并发连接数为50。
3、若需测试HTTPS接口,确保域名证书有效,命令中直接使用https://前缀(注意ab默认不校验证书,无需额外参数)。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
四、模拟带Header的认证接口压测
当被测接口要求携带Token或Authorization头时,ab可通过-H参数注入请求头,从而测试真实登录态下的接口承载能力。
1、获取一个有效的Bearer Token(例如通过登录接口获取),记为eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...。
2、执行带认证头的压测:ab -n 500 -c 30 -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." http://your-domain.com/api/v1/user/profile。
3、注意:Token须为实际可用值,过期或签名错误将导致大量Failed requests,影响结果有效性。
五、使用wrk进行高并发与长连接补充测试
ab在高并发(如>200)或需复用连接、测量TLS握手开销时存在局限;wrk支持多线程、keep-alive及Lua脚本,可更真实反映ThinkPHP6.x在连接池与FPM队列压力下的表现。
1、安装wrk:Ubuntu执行sudo apt install wrk;macOS执行brew install wrk。
2、运行4线程、200连接、持续30秒的测试:wrk -t4 -c200 -d30s http://your-domain.com/test/bench。
3、观察输出中的Requests/sec(每秒请求数)与Latency Distribution(延迟分布),特别注意99%线是否显著高于平均延迟——这可能暗示PHP-FPM子进程排队或数据库连接阻塞。
六、使用siege进行多URL轮询式压测
siege支持从文件读取多个URL并按比例轮询请求,适用于模拟ThinkPHP6.x项目中首页、列表页、详情页混合访问的真实流量分布。
1、创建urls.txt文件,每行一个接口地址:http://your-domain.com/、http://your-domain.com/article/list、http://your-domain.com/article/123。
2、安装siege:sudo apt install siege(Ubuntu/Debian)或sudo yum install siege(CentOS)。
3、执行轮询压测:siege -c50 -t2m -f urls.txt,表示启用50个并发用户、持续2分钟、按urls.txt中URL轮询发起请求。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










