一、定义
性能是非功能特性,关注的不是软件是否完成特定功能,而是完成该功能时所展示出来的及时性,一般在功能测试完成之后。利用自动化测试工具,模拟多种正常,峰值以及异常负载条件对系统的各项性能指标进行测试
二、性能角度
测试工程师在测试工作中不只是要找bug,还需要对软件系统的整体把控,这就需要测试工程师在测试过程中要考虑整个系统的全面性,如:表面的响应时间、吞吐量、本质的服务器利用率、代码合理性、架构合理性等
三、性能测试类型
1、基准测试:通过科学手段实现对一类测试对象的某项性能指标进行定量和可对比的测试;在给系统施加较低压力时,查看系统的运行状况并记录相关数据作为基础参考。
2、负载测试:指对系统不断施压或增加一定压力持续时间,直到系统的一项或多项性能指标达到临界值。
3、压力测试:评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大负荷情况下的处理能力。
4、稳定性测试:给系统加载一定业务压力的情况下,使系统运行一段时间,以此检查系统是否稳定。
5、并发测试:测试多个用户同时访问同一个应用、模块时,系统是否存在隐藏的并发问题,如:内存泄漏、线程锁、资源争用等
四、性能测试基本概念
1、响应时间:从用户发送请求到用户接收到服务器返回的响应数据的时间
响应时间-负载对应关系:
图中拐点说明:
响应时间突然增加,意味着系统的一种或多种资源利用达到的极限,通常可以利用拐点来进行性能测试分析与定位
2、吞吐量(TPS):单位时间内,系统处理客户请求的数量,一般以 请求数/秒 为单位
吞吐量-负载对应关系:
图中拐点说明:
吞吐量逐渐达到饱和,意味着系统的一种或多种资源利用达到的极限,通常可以利用拐点来进行性能测试分析与定位
3、并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的场景可以是同一个场景或功能,也可以是不同场景或功能。
在线用户数:某段时间内访问系统的用户数,这些用户不一定同时向系统发送请求
系统用户时:系统内注册的用户总数
系统用户数>=在线用户数>=并发用户数
4、资源利用率:指不同系统资源的使用情况,通常以占用最大值的百分比衡量
通常需要关注的指标:
CPU:
内存:临时存储,关机数据会消失
磁盘IO:永久保存,关机数据不会消失
网络:
资源利用-负载对应关系:
图中拐点说明:
1、服务器某荐资源使用逐渐达到饱和
2、通常可以利用拐点来进行性能测试分析与定位
5、PV 访问一个URL,产生一个PV,每日每个网站的总PV量,是形容一个网站规模的重要指标(页面访问量)
UV 用户访问
5、其他常用概念
TPS:吞吐量,每秒处理事务数
最佳并发用户数:
最大用户并发数:
五、“理发店”的性能模型
理发店模型的3个假设
①、理发店一共有3名理发师
②、每位理发师理一个发需要的时间固定为 1 小时
③、顾客是很有时间观念的人,对于每次理发所能容忍的等待时间+理发时间为 3 小时,等待时间越长,顾客的满意度越低,如果 3 个小时还不能剪完头发,顾客就会生气走人