小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 性能测试精华文章

    • 性能测试精华文章
    • 1. 性能测试面试到底问什么
    • 2. JMeter 压测脚本怎么设计
    • 3. 并发用户数和 TPS 怎么理解
    • 4. 响应时间吞吐量错误率怎么分析
    • 5. 性能测试场景模型怎么设计
    • 6. 性能瓶颈定位思路
    • 7. 数据库性能问题怎么排查
    • 8. 服务器监控指标怎么看
    • 9. 性能测试报告怎么写
    • 10. 性能调优建议怎么表达
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

3. 并发用户数和 TPS 怎么理解

并发用户数和 TPS 是性能测试面试中最容易混淆的两个概念。很多同学会把在线用户数、注册用户数、JMeter 线程数、并发用户数混在一起,也会把 TPS 和 QPS 混用。面试官问这些概念,不是为了听定义,而是想看你是否能用它们设计真实压测场景。

简单说,并发用户数描述“有多少用户同时对系统施加压力”,TPS 描述“系统每秒处理多少业务事务”。两者有关联,但不是简单等价关系。

一、并发用户数是什么

并发用户数通常指同一时间正在对系统发起请求或保持业务操作压力的用户数量。

它不是:

  • 注册用户数;
  • 总用户数;
  • 日活用户数;
  • 在线用户数;
  • 页面停留人数。

比如一个系统有 100 万注册用户,日活 10 万,高峰在线 1 万,但真正同一秒点击下单的可能只有几百人。

二、JMeter 线程数是不是并发用户数

JMeter 线程数可以近似看作虚拟用户数,但不完全等同于真实并发。

真实压力还受影响:

  • 响应时间;
  • 思考时间;
  • 循环次数;
  • ramp-up;
  • 定时器;
  • 脚本逻辑;
  • 网络延迟。

100 个线程不一定每一秒都在同时请求接口。

三、TPS 是什么

TPS 是 Transactions Per Second,每秒事务数。

事务是业务动作,比如:

  • 登录一次;
  • 查询一次商品;
  • 提交一次订单;
  • 完成一次支付回调。

如果一个事务包含多个接口,TPS 是业务事务吞吐,不一定等于接口请求数。

四、QPS 是什么

QPS 是 Queries Per Second,每秒请求数或查询数。

在接口层面,一个业务事务可能对应多个请求。

例如一个下单事务包含:

  1. 查询商品;
  2. 计算优惠;
  3. 创建订单;
  4. 查询订单。

如果下单 TPS 是 100,那么接口 QPS 可能是 400 或更多。

五、并发用户数和 TPS 的关系

可以用一个简单公式理解:

TPS ≈ 并发用户数 / 平均响应时间

如果考虑思考时间:

TPS ≈ 并发用户数 / (响应时间 + 思考时间)

例如 100 个用户,每个事务平均耗时 1 秒,没有思考时间,理论 TPS 约 100。如果每次操作后思考 4 秒,则 TPS 约 20。

这只是估算,真实结果还受系统处理能力影响。

六、并发用户数怎么估算

可以从业务数据估算:

高峰小时请求量 / 3600 = 平均每秒请求量

再结合峰值系数、业务比例、用户操作频率估算。

例如高峰 1 小时有 36 万次查询请求,平均 QPS 是 100。如果峰值系数按 3 估算,峰值 QPS 约 300。

七、TPS 上不去说明什么

TPS 上不去可能原因:

  • 系统达到瓶颈;
  • 响应时间升高;
  • 线程数不够;
  • 压测机资源不足;
  • 网络带宽不足;
  • 数据库慢 SQL;
  • 连接池耗尽;
  • 应用线程池不足;
  • 限流;
  • 脚本有思考时间或阻塞。

不能只看 TPS,要结合资源指标判断。

八、响应时间和 TPS 的关系

当系统没有瓶颈时,增加并发可能提升 TPS。

当系统达到瓶颈后,继续增加并发,TPS 可能不再上升,响应时间和错误率反而上升。

这种拐点是性能测试分析重点。

九、常见误区

1. 注册用户数等于并发用户数

完全错误。注册用户只是总量,不代表同时访问。

2. 在线用户数等于并发用户数

在线用户可能只是登录状态,不一定正在发请求。

3. JMeter 线程数等于 TPS

线程数是虚拟用户数,TPS 是系统吞吐结果。

4. TPS 越高越好

TPS 要结合响应时间和错误率看。错误率很高的 TPS 没有意义。

十、面试回答模板

如果面试官问“并发用户数和 TPS 怎么理解”,可以这样回答:

并发用户数表示同一时间对系统施加压力的用户数量,不等于注册用户数或在线用户数。JMeter 线程数可以近似模拟虚拟用户,但真实并发还受响应时间、思考时间、循环和 ramp-up 影响。TPS 是每秒处理的业务事务数,比如每秒下单数或登录数;QPS 更偏接口请求数,一个业务事务可能包含多个接口,所以 TPS 和 QPS 不一定相等。两者关系可以粗略理解为 TPS 约等于并发用户数除以响应时间加思考时间。性能分析时要结合 TPS、响应时间和错误率一起看,不能单独看一个指标。

十一、练习清单

  1. 区分注册用户和并发用户;
  2. 区分在线用户和并发用户;
  3. 解释 JMeter 线程数;
  4. 解释 TPS;
  5. 解释 QPS;
  6. 用公式估算 TPS;
  7. 分析 TPS 上不去;
  8. 观察响应时间变化;
  9. 找性能拐点;
  10. 准备概念面试回答。

并发用户数和 TPS 是性能测试的基础。理解它们的关系,才能设计合理压测模型,而不是盲目加线程。

配套刷题:

  • 性能测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
2. JMeter 压测脚本怎么设计
Next
4. 响应时间吞吐量错误率怎么分析