1、性能测试的必要性
系统对于性能测试的关注点应在于性能测试做到什么程度,而不是是否做性能测试
系统分类:单机系统;C/S系统;B/S系统,
两个系统的区别如下:
根据系统的不同,性能测试的策略不同。
2、性能测试的目的
最终目的:排除系统瓶颈
测试步骤:评估当前系统的性能▷▷▷寻找瓶颈,优化性能▷▷▷预测未来性能
性能测试主要是测试服务端性能和客户端性能
3、基本术语:
-
并发数:多个用户在同一时刻内对系统做相同或不同的请求。
关联术语:
系统用户数:系统注册用户数量
在线用户数:登录用户数量(包含正在对系统操作的用户和仅登录,不操作的用户数)
并发用户数:对服务器产生压力的用户(可以理解成同一时间段内,与服务器交互的用户数量)
并发数获取方式:分析服务器日志来确定
并发数获取工具:AWStats、Webalizer、Analog、Deep Log Analyzer
响应时间:网络传输时间(请求+响应)+服务器处理时间+前端解析渲染时间
注:
● 该指标的设定应当根据实际业务设定(统计列表和正常列表的时间不同)
● 前端页面解析渲染时间同浏览器解析有关,所以时间可能有所不同,一般在做前端性能测试会更关注,非前端性能测试不太关注
每秒通过事务数:TPS(Transaction Per Second)
可直接反映系统性能的指标;值越大,系统性能越好
与平均事务响应时间相比,可以分析事务数量对响应时间的影响。
常见场景:系统压力增加,TPS曲线趋于平坦,可能是服务器瓶颈(例地铁站只有4个检票口,100个人和500个人,单位时间内通过的人数是固定的,所以TPS区域逐渐平缓)
每秒点击数:每秒向服务器提交的请求数
举例:如登录进入首页,对于用户来说,仅点击登录,对于后端来说,可能有登录请求以及首页的各个报表的请求,所以每秒点击数是大于1的。
应用场景:可以从侧面反映客户端的状况,若每秒点击数不正常,可能是网络问题或脚本问题
吞吐量:单位时间内系统处理的请求数量
可直接反映服务器承受的压力
易混淆概念:吞吐率,用户在单位时间内可从服务器获得的数据量
思考时间:用户操作时,请求或操作之间的间隔时间
应用场景:
● 预估系统性能时,最好最大可能模拟真实思考时间,但分析时需要去掉思考时间;
● 了解系统最大承受能力或极端情况下性能,可设置0思考时间
举例:系统设置短时间内不允许多次提交表单(防止连点?)
资源利用率:常见指标
CPU:反映系统的繁忙程度
系统CPU:处理系统本身所占用的资源
用户CPU:处理程序所占用的资源
Load Average:一段时间内CPU正在处理和等待CPU处理的任务
Memory:内存,常出现内存泄露或溢出的现象
队列:队列过长说明可能达到了极限或者阻塞
IO:与磁盘交互,需重点关注交换频率和磁盘队列长度
网络:重点关注网络流量,是否存在网络带宽的瓶颈
4、性能测试分类:
2、服务端性能
APP性能测试
1、服务端性能测试