news 2026/9/2 16:36:40

性能测试:常见性能测试指标 -- 吞吐量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
性能测试:常见性能测试指标 -- 吞吐量

性能测试:常见性能测试指标 – 吞吐量

文章目录

  • 性能测试:常见性能测试指标 -- 吞吐量
  • 1. 事务
  • 2. 什么是吞吐量?
  • 3. 吞吐量案例
    • 3.1 A 场景
    • 3.2 B 场景
    • 3.3 区别:
    • 3.4 解释:为什么A场景会占用更多的系统资源
  • 4. 吞吐量分类:
    • 4.1 TPS
      • TPS 案例
      • TPS 预测案例
    • 4.2 QPS
      • QPS 案例
    • 4.3 TPS 和 QPS 的区别
      • 最简单的区别
    • 4.4 TPS 和 QPS 的关系
    • 4.5 总结:
  • 5. 结尾

这篇博客,是从这篇博客的内容中,分离出来的,用来介绍性能测试的。
上一篇博客: 测试(12) - 性能测试概念篇

如果你没有看过上一篇博客,推荐看到上一篇博客中,这篇博客的链接后,再点击那个链接,进来看这篇博客。

1. 事务

在性能测试中,会遇到一个概念:事务(Transaction)
事务可以简单理解为:一个完整的功能或者一个完整的业务操作。

例如:

  • 一个接口可以是一个事务
  • 多个接口可以组成一个事务
  • 一个完整的业务流程也可以是一个事务

所以:事务代表一个完整的功能。

例如一个“用户下单”的业务流程可能包含:

  1. 查询商品
  2. 创建订单
  3. 扣减库存
  4. 支付
  5. 返回订单结果

如果我们把整个“下单”过程作为一个完整业务,那么整个流程就可以看成一个事务。

2. 什么是吞吐量?

吞吐量指的是:单位时间内系统处理的请求、事务或数据量。
吞吐量可以直接体现软件系统的负载承受能力

通常来说:吞吐量越高,系统能够承受的并发请求越多,性能越好。

3. 吞吐量案例

假设有 A、B 两种场景。

3.1 A 场景

有 100 个并发用户,每个用户每隔 1 秒发送一个请求
1s 有100个用户分别发送了请求,总共发送了100 × 1 = 100个请求
所以 A 场景的吞吐量为:每秒 100 个请求

3.2 B 场景

有1000 个并发用户,每个用户每隔 10 秒发送一个请求
10s 有1000个用户分别发送了请求,总共发送了1000 × 10 = 10000个请求
那么1s 中,发送的请求数量为:1000 ÷ 10 = 100
所以 B 场景的吞吐量同样是:每秒 100 个请求

因此:A 和 B 两个场景的吞吐量相同,都是每秒 100 个请求。

3.3 区别:

但是,两者对系统资源的占用情况并不完全相同。

A 场景用户的思考时间更短,因此 A 场景会占用更多的系统资源

3.4 解释:为什么A场景会占用更多的系统资源

A 场景的人虽然少,但是操作特别频繁,所以服务器一直在忙。

比如把服务器想象成餐厅老板

  • A:100 个顾客,每 1 秒来点一次菜
    • 顾客少,但是不停点菜
    • 老板一直在忙
  • B:1000 个顾客,每 10 秒才点一次菜
    • 顾客多,但是点菜没那么频繁,可以休息一下
    • 老板有更多空闲时间

虽然两种情况:平均每秒都是 100 个订单
但是 A 的顾客操作得更频繁,所以服务器可能一直处于忙碌状态。

所以你只需要记住:思考时间越短 → 用户操作越频繁 → 服务器越忙 → 资源占用可能越高。

所以,在性能测试中:不能只看吞吐量一个指标,还需要结合并发用户数、响应时间、资源利用率等指标进行综合分析。

4. 吞吐量分类:

吞吐量分类:

  1. 按照请求数量:TPS 和 QPS
  2. 按照网络数据包划分:KB / 每秒

下面主要讲 TPS 和 QPS。

4.1 TPS

TPS 全称:Transactions Per Second
中文:每秒处理事务数

TPS 用来衡量系统在一定时间内能够处理多少个事务
计算公式:TPS = 总的事务数 ÷ 总的运行时间

TPS 案例

例如:某系统 1 分钟处理了 1000 个业务。
那么:TPS = 1000 ÷ 60 ≈ 16.7
也就是说:这个系统平均每秒可以处理约 16.7 个事务。

TPS 预测案例

假设:2022 年最高的一天有 10 万笔交易。
如果认为每笔交易就是一个事务,一天有24个小时,一个小时60分钟,一个分钟有60秒
那么理论 TPS:TPS = 100000 ÷ 24 ÷ 60 ÷ 60 ≈1.2 TPS

但这个结果只是理想状态
因为真实业务并不是平均分布在 24 小时中的。
例如购物网站中,订单可能集中在某几个时间段产生。

所以实际进行性能容量规划时,需要考虑业务高峰期

  • 没有详细业务数据怎么办?

如果没有更加详细的数据,可以根据:二八定律,进行估算。

还是按照这个例子:2022 年最高的一天有 10 万笔交易。

也就是:80% 的事务在 20% 的时间内完成。

按照这个方式进行估算:TPS = 100000 × 0.8 ÷(24 × 60 × 60 × 0.2)≈4.6 TPS

  • 有详细业务数据怎么办?

如果有更加详细的业务数据,那么可以直接根据高峰期的数据进行计算。
例如:5 万笔交易集中在晚上的 8 点~9 点完成。
那么:TPS = 50000 ÷ 60 ÷ 60 ≈13.9 TPS

如果进一步考虑业务增长。
假设:每年的业务增长率为 30%。
那么:TPS = (50000 + 50000 × 0.3)÷ 60 ÷ 60 ≈18 TPS

因此,在实际进行 TPS 规划时:不能简单地使用全天平均数据,还需要结合业务高峰期以及未来业务增长情况进行分析。

4.2 QPS

QPS 全称:Queries Per Second
中文:每秒查询率

QPS主要用于衡量系统每秒能够处理多少个查询请求
这里的“查询”不一定只是我们平时理解的“查询数据库”,而是主要强调查询类请求

例如:一个商品查询接口

GET /product/1001

用户每秒访问这个接口 100 次,那么:QPS = 100
也就是说:系统每秒处理了 100 个查询请求。

QPS 案例

假设一个商品列表查询接口1 分钟一共处理了 6000 次查询请求
那么:QPS = 6000 ÷ 60 = 100
所以:QPS = 100

也就是说,这个接口平均每秒能够处理100 个查询请求

4.3 TPS 和 QPS 的区别

TPS 和 QPS 都是用来衡量系统单位时间内处理请求的能力,但是两者关注的对象不同

简单理解:TPS 看“事务”,QPS 看“查询”。

例如一个“下单”业务:

查询商品 ↓ 创建订单 ↓ 扣减库存 ↓ 支付 ↓ 完成订单

我们可以把整个“下单”流程看成:1 个事务

那么完成100 个下单业务TPS = 100 / 秒

但是这个下单业务过程中可能产生多个查询请求

例如:

查询商品 → 1 次查询 查询库存 → 1 次查询 查询订单 → 1 次查询

这些查询请求就可以用QPS来衡量。


最简单的区别

指标全称主要衡量
TPSTransactions Per Second每秒处理多少个事务
QPSQueries Per Second每秒处理多少个查询请求

可以直接记成:

  • TPS:每秒完成多少个业务。
  • QPS:每秒处理多少个查询。

4.4 TPS 和 QPS 的关系

如果:一个事务中只有一个接口,并且这个接口是查询接口
那么:QPS = TPS

例如:一个查询商品的业务只有一个查询接口。
每秒完成 100 次查询:

TPS = 100 QPS = 100

但是,如果一个事务中包含多个查询请求,那么:QPS 就可能大于 TPS。
例如:一个业务事务平均需要执行5 个查询请求
每秒完成 100 个事务:

TPS = 100 QPS = 100 × 5 = 500

也就是说:100 个业务事务,每秒可能产生 500 个查询请求。

所以,在性能测试中,TPS 和 QPS 不能简单地认为是同一个东西

4.5 总结:

TPS主要看系统每秒能完成多少个业务事务
QPS主要看系统每秒能处理多少个查询请求

对于面试来说,可以记住:
TPS → 事务
QPS → 查询
1 个事务 = 1 个查询接口时,QPS = TPS。

5. 结尾

最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!

回到性能测试博客:测试(12) - 性能测试概念篇

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 16:34:13

论文附录该放什么内容?按读者需求对比

写论文到收尾阶段,很多人卡在同一个问题上:附录到底该放问卷还是原始数据?附录放少了怕审稿人说材料不全,放多了又怕被批"凑页数"。其实附录怎么安排,答案不在"别人怎么放",而在"…

作者头像 李华
网站建设 2026/9/2 16:33:39

2026-08-30~09-01 hetao1733837 的刷题记录

2026-08-30~09-01 hetao1733837 的刷题记录 CF2255B A Ribbon for Tomorrow 原题链接:B. A Ribbon for Tomorrow 分析 需要从 回文串 的方向进行思考。要不直接把回文串删了吧……剩下的直接组合数做,然后加上 111,表示原来的&#xff0c…

作者头像 李华
网站建设 2026/9/2 16:33:16

单片机毕设项目:基于 STM32 的 OLED 本地显示物联网环境安防系统设计 基于 STM32 的多模式室内环境智能调控系统设计

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/2 16:31:27

Python与AI大模型学习路线:从零基础到RAG项目实战指南

这次我们来看一份被很多人收藏过的 Python AI 大模型学习路线。它不是单一的软件项目,而是一整套覆盖方法论、基础语法、算法原理、大模型应用和项目实战的内容合集。如果你正在纠结“要不要转 AI”“从哪开始学 Python”“怎么把大模型真正用到项目里”&#xff0…

作者头像 李华