当前位置: 首页 > news >正文

在 Linux 上进行 Apache Bench 测试

在 Linux 上进行 AB 测试(Apache Bench,简称 ab)非常简单,适合快速对 Web 接口或页面进行压力测试。以下是详细的Linux AB 测试教程,包括安装、使用、参数说明、常见问题及进阶技巧。


✅ 一、安装 ab(Apache Bench)

# Ubuntu / Debian
sudo apt-get update
sudo apt-get install apache2-utils# CentOS / RHEL
sudo yum install httpd-tools -y

验证安装:

ab -V

✅ 二、基本使用语法

ab [选项] <测试URL>

🔧 常用参数说明

参数示例说明
-n-n 1000总请求次数
-c-c 100并发用户数
-t-t 60最大测试时间(秒)
-k-k启用 HTTP KeepAlive
-p-p post.txtPOST 请求数据文件
-T-T "application/json"指定 Content-Type
-H-H "Authorization: Bearer xxx"添加自定义请求头
-A-A user:pass添加 Basic 认证
-w-w以 HTML 表格形式输出结果

✅ 三、实战示例

1️⃣ GET 请求测试

ab -n 1000 -c 100 https://example.com/api/v1/users

2️⃣ POST 请求测试(带 JSON 数据)

准备 post.json 文件内容:

{"username": "test", "password": "123456"}

执行命令:

ab -n 500 -c 50 -p post.json -T "application/json" https://example.com/api/login

✅ 四、结果解读(关键指标)

指标含义
Requests per second吞吐量(QPS)
Time per request平均响应时间
Failed requests失败请求数
Transfer rate每秒传输速率
50%/90%/95%请求延迟分布

✅ 五、常见问题与解决方案

问题原因解决方案
apr_socket_recv: Connection reset by peer服务器拒绝连接降低并发数 -c
socket: Too many open files文件句柄限制ulimit -n 65535
ab: Invalid Concurrency并发数 > 20000修改源码限制
SSL 证书问题证书无效添加 -k 忽略验证

✅ 六、进阶技巧

✅ 脚本自动化测试

#!/bin/bash
for c in 10 50 100 200; doab -n 1000 -c $c https://example.com/api >> results.txt
done

✅ 可视化结果(gnuplot)

ab -n 1000 -c 100 -g result.tsv https://example.com/api
# 用 gnuplot 绘图

✅ 七、注意事项

  • 测试机与目标服务器分开,避免干扰结果
  • 不要对线上生产环境直接压测
  • 结合 tophtopiftop 监控服务器资源
  • ab 是单线程工具,复杂场景建议使用 wrkJMeter

✅ 总结一句话

安装 → 写命令 → 看指标 → 调并发 → 出报告


如需更复杂测试(如带登录、带 Cookie、动态参数),建议结合 JMeterLocust 使用。

http://www.dtcms.com/a/302438.html

相关文章:

  • Item18:让接口容易被正确使用,不易被误用
  • 修改gitlab默认的语言
  • 项目如何按时交付?重点关注的几点
  • 面试问题收集——卷积神经网络
  • 音频焦点 Android Audio Focus 进阶
  • MongoDB的内存和核心数对于运行效率的影响
  • mongodb源代码分析createCollection命令创建Collection流程分析
  • 未授权访问漏洞靶场(redis,MongoDB,Memcached...)
  • MongoDB占用内存情况分析
  • jimfs:Java内存文件系统,脱离磁盘IO瓶颈利器
  • Java强制转换
  • TDengine 中 TDgpt 用于异常检测
  • 【AI绘画】Stable Diffusion 全面指南:安装、版本对比、功能解析与高级应用
  • selenium 特殊场景处理
  • 技术工具箱 |五、一个避免头文件重复引用的 Python 脚本
  • 【Java基础面试题】Java特点,八种基本数据类型
  • 提取apk中的各种语言翻译成表格,python脚本
  • 【图像处理】霍夫变换:霍夫变换原理、霍夫空间、霍夫直线、霍夫圆详解与代码示例
  • 小智源码分析——音频部分(二)
  • java设计模式 -【责任链模式】
  • 2025 DevOps工具生态全景解读:本土化服务与智能化演进成关键赛点
  • 电商项目DevOps一体化运维实战
  • Kafka 3.9.1的KRaft模式部署
  • AR远程协作系统设计:虚实融合场景下的设备维护操作指引界面
  • 【JSqlParser】sql解析器使用案例
  • 3. 卷积网络代码参数解读分析
  • 基于百度 iframe 框架与语音解析服务的数字人交互系统实现
  • 仓颉编程语言程序基本结构
  • dapp前端⾯试题
  • 数据库审计及安全管理的解决方案