- 书名:软件性能测试学习笔记之LoadRunner实战
- 作者:杨婷编著
测试人员眼中的性能
什么是性能测试
主要包含三个方面
在给定环境和场景中进行的测试活动
根据测试结果批判是否存在性能问题
如果存在性能问题,需定位性能瓶颈,提出改进建议
在ISO软件质量模型中也有关于性能测试部分的介绍,提供了一组衡量软件质量的基础指标
1.响应时间
我们向服务器发起了某个请求,在没有缓存的情况下,服务器返回请求所花费的时间总和就等于响应时间。比如登录QQ邮箱,发送请求,1秒后进入邮箱首页,这1秒就是响应时间。
客户感受到的响应时间=客户端响应时间+网络响应时间+服务器响应时间
(1)客户端响应时间
CT=Client Time 例如Ajax、HTML5、Bootstrap,由于客户端内嵌了大量的逻辑处理,消耗的时间可能很长,需要关注。
(2)网络响应时间
指网络传输交易请求和交易结果所消耗的时间,可以分为以下两个部分。
N1+N2+N3=客户端请求的网络延迟
N4+N5+N6=服务器响应的网络延迟
(3)服务器响应时间
服务器完成交易请求执行的时间,服务器端的响应时间可以度量服务器的处理能力。
WT=Web Server Time
AT=App Server Time
DT=Database Time
2.并发数
我们可以通过有多少用户在使用系统了解系统的承载能力,客户总是希望越多越好,但系统总是有极限的。这里有三个概念需要加以区分。
(1)系统用户数
可以理解为系统注册用户总数。例如,截至2016年9月,网易邮箱用户总数达8.9亿,有些用户非常活跃,经常登录并留下“足迹”,而有的用户很少访问,甚至自己都忘记曾经注册过的账号了。
(2)在线用户数
当前统计时正在访问的用户总数。例如,网易邮箱每天有超过12万的在线用户数,但他们不一定会给网站造成巨大的压力,大多数用户只是浏览网页信息,并没有向服务器发起过多请求。
(3)并发用户数
同一时刻让服务器产生压力的用户数。例如,网易邮箱的12万在线用户中有20%正在使用发送邮件,那么服务器将承受这部分用户的压力。
3.吞吐量(Throughput)
严格意义上来讲我们可以把吞吐量分为“吞吐量”和“吞吐率”两个概念讲解。
(1)吞吐量
指在一次性能测试过程中网络上传输的数据量的总和,“吞”进去的是请求,“吐”出来的是结果,吞吐量反应的就是服务器的“饭量”,也就是服务器承受的压力。例如,在网易邮箱发送邮件比浏览页面需要更高的网络吞吐量。
(2)吞吐率
通常指单位时间内网络上传输的数据量,也可以指单位时间内处理的客户端请求数量/服务器返回的数据量。在数据库层面,吞吐率指的是在单位时间内,不同SQL语句的执行数量;从用户层面来讲,吞吐率也可以用“页面数/秒”、“业务数/小时”、“访问人数/天”等指标来衡量。
【特别说明】:吞吐率=吞吐量/传输时间,例如,访问网易邮箱首页,首页大小按2MB计算,如果每秒有1000个首页访问量,那么吞吐率就约等于2GB/s(1GB=1024MB)。
4.每秒通过事务数(TPS:Transaction Per Second)
每秒钟系统能够处理的交易或事务的数量,它是衡量系统处理能力的重要指标。一个交易或者事务可能包含多个请求,例如,用户注册可以包含多个字段验证请求,而用户注册的TPS等于每秒钟能够注册的用户数量,如果每秒钟能够注册10个用户,那么TPS=10。
【特别说明】:TPS和吞吐率在性能测试中的曲线呈正相关,每秒访问网易邮箱首页的次数1000次,那么TPS=1000次。
5.每秒单击数(Hits per Second)
每秒钟用户向Web服务器提交的HTTP请求数,这是Web应用特有的一个指标。如果把每次单击定义为一次交易,那么单击率和TPS就是一个概念,但事实上一个交易往往由若干请求数组成,请求当中包括页面HTML、css、图片等,甚至可能包括多个页面,也就是说单击数和TPS一般不会一致。
例如,你想在网易邮箱提交一个登录请求,通俗来讲就是你用鼠标的一次“单击”登录按钮的操作,这个单击操作可能向服务器发出了90多个HTTP请求,但我们只能看作是1个事务。
6.资源利用率
指的是对不同系统资源的使用程度,主要针对Web服务器、应用服务器、数据库服务器、网络情况等。
常见的资源有CUP占用率、内存使用率、磁盘I/O、网络。
内存就像区域,将信息收集和存放起来,能够存放的信息量越多,计算机的反应也就越快,但关机后该区域的信息将被清空。(从内存读取数据要比从硬盘上快得多。)
传统磁盘的I/O读写速度成为了计算机系统性能提高的瓶颈,制约了计算机整体性
网络主要指网络流量,看是否是网络带宽的瓶颈。例如,邮箱首页2GB的吞吐量将消耗掉16Gbps的带宽。