hello,大家好!我是磨磨唧唧小蘑菇~
接上期阐述了《TP50/90/99/999》的含义及计算方式,本期将阐述压力测试的其他指标,如TPS、响应时间等。
目录
一、TPS
二、响应时间
三、TPS与响应时间RT的关系
一、TPS
1、TPS的含义
Transactions Per Second的缩写,即每秒处理的事务数量(事务数/秒),它是软件测试结果的计量单位。
一个事务是指:客户端向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,在收到服务器响应结果后结束计时,以此来计算使用时间和完成的事务数,然后利用使用时间和事务数来计算TPS的值。即:TPS = 事务数/时间(单位:秒)
举个栗子:
一个单接口定义为一个事务,那么每个事务包含如下3个步骤:
- 客户端向服务器发送请求
- 服务器内部处理接收到的请求(包含应用服务器、数据库服务器等)
- 服务器处理完请求后返回结果给客户端
以上一个单接口的事务,三个步骤全部完成的话,每分钟能够完成6000次,那么TPS的计算就是:6000(事务数)/60(时间,单位为秒)= 100,即TPS = 100
2、TPS的作用:
- 反映系统在同一时间内处理业务的最大能力,这个数据越高,说明处理能力越强(TPS会受到负载的影响,会随着负载增加而逐渐增加,当系统进入繁忙期后,TPS会有所下降)
- 评价系统性能:以每秒钟完成的技术交易的数量来衡量,系统整体处理能力取决于处理能力最低模块的TPS值
二、响应时间
1、响应时间的含义
Response Time的缩写,简称为RT(响应时间)它是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。那么何为响应时间呢?看下图说话:
从图中可以看出,在没有缓存的情况下,客户端发出请求后,需要经过网络传输、DNS解析等步骤才能到达服务器,服务器处理完之后,经由网络传输返回客户端,而客户端接收到以后,要进行解析渲染展示给用户。所以,可以总结出:
响应时间RT = 服务请求时间(网络传输时间) + 服务器处理时间(服务接口逻辑处理时间) + 网络响应返回时间(网络传输时间) + 页面前端解析渲染时间
2、响应时间的指标确定
在进行性能测试时,“合理的响应时间”取决于用户的需求,而不能依据测试人员自己设想来决定。对于响应时间范围,有一个普遍的标准:早期是2/5/10秒原则,如今随着技术的发展,用户的要求也提高了,逐渐朝1/3/5秒原则演变。
1/3/5秒原则:
- 在1s以内得到响应,用户会觉得系统响应很快,体验非常好
- 1-3秒得到响应,用户可以接收,体验还不错
- 3-5秒才响应,用户就感觉慢了,体验有点糟糕
- 响应超过5秒,用户会认为是个失败的体验,选择离开或重新发起请求
实际上,对于不同的业务系统,用户可接受的响应时间是不一样的,需要针对自己的业务场景来做统计量化的工作。
总结一下,如何去确定响应时间:
- 确定系统功能和使用路径
- 收集性能目标(调查客户对响应时间的满意值)
- 量化性能目标(包括分解性能目标、量化各部分性能目标)
- 满足性能目标
综合以上,就可以去明确响应时间这个指标。
三、TPS与响应时间RT的关系
进行性能测试时,需要模拟用户向服务器发送请求,如果服务器处理请求的能力越快,那么就是响应时间越快,所以TPS就会越高。但随着我们启动越来越多的虚拟用户数,就会把服务器堵住,服务器因此处理速度会变慢,导致TPS降低。
综上,TPS和响应时间的关系是:响应时间越短,TPS越高;响应时间越长,TPS越低。
文中所有观点只代表个人,有不足之处,欢迎指正,不胜感激!!!