TPS、QPS、RT和吞吐量这些名词都是什么意思?

发表于:2022-5-12 09:34  作者:把苹果咬哭   来源:掘金

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 性能测试 软件测试技术

  题目所示的其实都是性能需求指标。
  通常,性能指标可以从两个层面去定义:业务指标、技术指标。而且,这两个之间是存在映射关系的。
  举例,如果一个系统要支持 1000 万人在线,可能你能测试出来的结果是系统能支持 1 万 TPS。但是,如果问你,1000 万人在线会不会有问题?这估计就很难回答了。

  所以,业务指标和技术指标的关系是:
  所有的技术指标都是在有业务场景的前提下制定的。
  技术指标和业务指标之间也要有详细的换算过程。
  有了关系之后,就可以回答“1000 万人在线会不会有问题?”。比如,我可以回答“有问题”,因为1万 TPS 的时候,接口的响应时间大幅超过预期。

  一、什么是 TPS
  TPS,这是一项关键指标,用来描述每秒事务数,可以反应出一个系统的处理能力。
  但是,TPS 在不同的行业、不同的业务中定义的粒度都是不同的。所以不管你在哪里用 TPS,一定要有一个前提,就是所有相关的人都要知道你的 T 是如何定义的。
  如图所示,一个业务流程图:

  如果要单独测试接口 1、2、3,那么 T 就是接口级的。
  如果我们要从用户的角度来下一个订单,那 1、2、3 应该在一个 T 中,这就是业务级的了。
  当然了,还要具体看系统是怎么设计的。通常来说,积分服务是异步的,而库存不是异步,那么这个业务级就可以看做是 1、2 两个接口。但是,在做这样的业务级压力时,3 接口也是必须要监控分析的。
  所以,性能中 TPS 中 T 的定义取决于场景的目标和 T 的作用。
  具体用示例来说明下:
  接口级脚本:
——事务 start(接口 1)
接口 1 脚本
——事务 end(接口 1)

——事务 start(接口 2)
接口 2 脚本
——事务 end(接口 2)

——事务 start(接口 3)
接口 3 脚本
——事务 end(接口 3)

  业务级接口层脚本(就是用接口拼接出一个完整的业务流):
——事务 start(业务 A)
接口 1 脚本 - 接口 2(同步调用)
接口 1 脚本 - 接口 3(异步调用)
——事务 end(业务 A)

  结合上述示例,再次理解下:你要创建什么级别的事务,完全取决于测试的目的是什么,这句话。
  另外,在测试过程中,通常是先接口级、后业务级的顺序,容易定位问题。

  二、什么是 QPS
  QPS 一开始是用来描述 MySQLSQL 每秒执行数 Query Per Second,所有的 SQL 都被称为 Query。后来,由于一些文章的转来转去,QPS 被慢慢地移到了压力工具中,用来描述吞吐量。
  如果描述的是前端的每秒查询数,那就不包括插入、更新、删除操作了。显然这样的指标用来描述系统整体的性能是不够全面的,所以不建议用 QPS 来描述系统整体的性能。

  三、什么是 RT
  RT 就是响应时间(Response Time)。

  图示中 T1 和 T2 分别代表请求时间和返回的时间,所以 T1 - T2 = RT,即响应时间。
  不过这个响应时间是包括了后面一连串的链路,如果要定位响应时间慢在哪里,就要知道各环节的耗时,除了在所有服务的进出口上都做记录,然后计算结果来实现,目前也有成熟的工具。

  它很直观地显示了,在一个请求链路上,每个节点消耗的时间和请求的持续时间。

  四、吞吐量
  通常是不需要用吞吐量这个概念的。因为它在不同人的脑子里会存在一些误解。
  比如说,有些人说吞吐量就是在说TPS。有些人说吞吐量是说的每秒字节数。所以不建议用这个概念来承载性能指标,有TPS就够了。

  五、总结
  关于性能测试的种种,简化完后,需要记住的关键字是:
  性能测试概念中:性能指标、性能模型、性能场景、性能监控、性能实施、性能报告。
  性能场景中:基准场景、容量场景、稳定性场景、异常场景。
  性能指标中:TPS、RT。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理

评 论

论坛新帖



建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道