如何使用JMeter测试服务器每秒可处理的最大并发请求数
可以通过JMeter测试得到目标服务器每秒能够处理的最大并发请求数(即峰值QPS/ TPS指标),具体操作步骤如下:
1. 现有脚本优化配置
你已经完成了登录流程脚本的编写,先做适配调整确保压测有效性:
- 添加
HTTP Cookie管理器,保证每个虚拟用户的登录态独立,避免出现账号串用、会话失效的问题 - 筛选压测请求:优先选择站点内访问频率最高的核心页面/接口加入测试序列,不要选择边缘低频功能,否则测试结果无实际参考价值
- 配置请求参数化:如果涉及查询、提交类的动态请求,对可变参数做参数化处理,避免大量重复请求被服务器缓存,导致测试结果偏高失真
- 增加响应断言:添加响应码断言、核心内容关键字断言,确保统计的成功请求都是有效响应,排除错误页面、超时响应被计入成功数的情况
2. 阶梯式加压测试执行
推荐使用JMeter的阶梯线程组插件执行加压(无插件也可以用普通线程组分次调整并发数测试),测试规则如下:
- 初始并发线程数设为10,每间隔30~60秒增加10个并发线程,所有线程设置为永久循环发送请求
- 加压过程中实时监控四个核心指标:活跃并发线程数、每秒请求数(QPS)、请求错误率、平均响应时间
- 当出现以下任意一个现象时,此时对应的QPS就是服务器能稳定处理的最大每秒请求数:
- 请求错误率突然上涨,超过预设阈值(常规业务阈值为1%)
- 平均响应时间出现陡增,涨幅超过正常响应时间的2倍
- QPS不再随并发线程数增加而上涨,进入平稳状态甚至开始下跌
3. 测试结果校准
单次加压得到的峰值可能存在误差,需要做稳定性验证:
- 将并发线程数固定在峰值对应的数值,持续压测10~30分钟
- 确认整个压测周期内QPS稳定、错误率符合要求、平均响应时间没有持续上涨,此时得到的数值才是有效最大处理能力
- 条件允许的话可以同时监控服务器端的CPU、内存、带宽、磁盘IO资源占用情况,如果某类资源提前被打满,说明当前瓶颈在服务器资源配置,优化后可测试更高的峰值
注意:压测前建议提前告知站点运维人员,避免压测流量被误判为恶意攻击拦截,也防止压力过大导致测试环境不可用,影响其他测试任务开展。
内容的提问来源于stack exchange,提问作者Sujit
相关产品推荐
相关产品推荐

