一、为什么要做性能测试?
系统是否可以处理预期的用户负载;
系统是否可以处理业务所需要的事物数量;
系统可以处理非预期情况下的用户负载;
系统能在预期和非预期的情况下稳定用户可以获得舒适的体验。
二、什么时候做性能测试?
功能测试之后,系统的功能比较稳定之后。
三、性能测试的基础概念
1.并发数
(1)狭义的并发用户数:同一时刻,使用系统的同一个功能(发送请求)的用户数量。(说明:性能测试一般都是狭义的并发。)
(2)广义的并发用户数量:同一时刻,给服务器产生压力(发送请求的)的用户数量。(可以是不同功能)广义并发有请求之和。
注:系统用户数:某个系统的用户量
在线用户数:同一时刻登录系统或正在使用的用户数量
例:1000个系统用户,500个用户在线,100个用户打开网页在浏览,200个用户在进行查询操作,100个在进行提交操作。
给服务器产生压力的用户数量有多少(广义的并发用户数):300
狭义并发用户数量:200个用户同时访问查询操作,100个用户同时访问提交操作。
2.响应时间 RT
用户发送请求到用户收到响应所需要的时间。
响应时间=人的反应时间+网络传送时间(来回)+服务器处理时间+数据库的响应时间
响应时间影响因素:用户的带宽、运营商;服务端的带宽、运营商等
注:ART(平均响应时间):如果响应时间比较平均,那么平均响应时间就有参考意义。如果响应时间波动范围较大,那么平均响应时间就没有参考意义。
请求响应时间:服务器收到用户请求并把响应内容发送出去。
3.事务响应时间TRT
(1)事务:是一系列密切相关的操作的集合
例如:支付:账务系统,银行系统,会员系统发送的一列请求,支付事务处理器处理一个事务所用的时间。
淘宝买一件商品,生成订单的过程中可能会涉及到多个功能(进入商品详情页、购买页、支付功能、购买成功订单页面)
(2)TPS(Transaction Per Second)平均每秒处理事务数量:指每秒系统能够处理的事务数。是衡量系统处理能力的重要指标。每秒事务通过数越高,对应的性能越好。(有的事务比较复杂,比如订单提交)
例子:地铁检票机∶
只有十台进站检票的机器,一台机器1秒能进一个人
并发用户数为5,则TPS为5
并发用户数为10,则TPS为10
并发用户数为100,则TPS仍为10
4.点击率
每秒向服务器发送的HTTP请求的个数
5.吞吐量/吞吐率
吞吐量:服务器在单位时间处理的信息数量
吞吐率:吞吐量/时间,单位时间内处理的客户请求数量。单位:秒 体现软件系统的性能承载能力
6.思考时间
请求和请求之间的时间间隔
7.资源利用率
系统运行时占用的服务器资源,如:CPU 内存 硬盘 带宽 耗电量等。占用的cpu资源越高,性能就越差。
例:资源利用率:假如有两款APP,功能都一样。第一款:美图秀秀,能够运行在5年前的手机上,占用的内存比较少;第二款:美颜相机,只能够运行在2年前的手机,占用的内存比较大。对于美图秀秀来说,资源利用率100%,对于美颜相机来说,资源利用率50%。
带宽:加载资源:js、css、html、图片、视频等资源,大概是125kb;服务器将数据传递给客户端(带宽1M),1M带宽下载速度12.5KB/S,100M下载速度12.2M/S,运营商用的是bit,1byte=8bit。那么1个用户时就需要1s将资源返回给客户端,2个需要2s。若要提高速度,需要压缩文件资源、增加带宽。
四、曲线拐点模型
此表显示了响应时间、吞吐率、资源利用率在并发用户数逐渐增加的情况下的变化情况。