性能测试的8大分类:
1、性能测试: 软件系统的性能包括执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。性能测试时为描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统进行各项性能指标进行测试。通常把性能测试、负载测试、压力测试等统称为性能测试。
2、负载测试:通过增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的前提下,系统所能够承受的最大负载量的测试。简言之,就是通过逐步加压的方式来确定系统的处理能力和能够承受的各项阈值
3、压力测试:通过增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态来或得系统能提供的最大服务级别的测试。压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效。
4、配置测试:主要是通过对被测软件的硬件配置的测试,找到系统各项资源的最优分配原则。
5、并发测试:是测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。通常并发用户的模拟都是借助于工具,采用多线程或者多进程的方式来模拟多个虚拟用户的并发性操作。
6、容量测试:在一定的软、硬条件下,在数据库中构造不通数量级的记录数量,通过运行一种或多种业务场景,在一定虚拟用户数量的情况下,获取不通数量级别的性能指标,从而得到数据库能够处理的最大会话能力、最大容量等。系统可处理同时在线的最大用户数,通常和数据库有关。
7、可靠性测试:通过给系统加载一定的业务压力(如CPU的资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定。因为运行时间比较长,所以通常可以测试出系统是否有内存泄漏等问题。
8、失败测试:对于有冗余备份和负载均衡的系统,通过失败测试来检验如果系统局部发生故障,用户是否能够继续使用系统,用户受到多大的影响。如几台机器做负载均衡,一台或几台机器垮掉后系统能够承受的压力。
移动终端的性能指标:
1、启动耗时 app启动耗费的时间是我们一个重要的时间,
测试启动时间比较依赖人为判断,一般我们是通过录屏,然后使用分帧的工具对 启动时屏幕渲染的过程做一个精细化的耗时分析。
- 优点:能真实反馈app的耗时;无侵入,离线分析,可对竞品进行精细化分析
- 缺点:判断时间比较依赖人肉眼判断,自动化工具无法判断。
2、单位时间耗电量、单位时间网络流量消耗
3、移动终端相关资源的利用率:不仅仅服务器端的CPU、内存、磁盘I/O、网路是性能测试关注的重要内容,移动端的CPU、内存也是我们需要关注的内容之一。
- cpu 主要关注运行时cpu占有率和后台情况下的cpu占有率
- 内存 进入某个业务场景下的的内存增量, 和 在多链路执行国购的 内存总消耗
4、业务响应时间、帧率(fps):由于人类的特殊结构,当看画面的帧率高于24的时候,就会认为是连贯的。fps越高,画面越流畅。
- FPS 分为滑动时的FPS,如果涉及视频/动画/直播,还要该业务运行时的FPS,
移动端性能测试工具:
一般分为两种,一种是自研的,一种是外部提供的开源/收费的。
自研:一般每家公司都会有都会有自研的收集性能数据的平台,当然有些是购买的外部的服务。但是自研的工具只能对本公司的app进行性能数据的收集,无法收集竞品的数据
开源:各大公司都有一些开源的软件,供使用,具体如下
1、TraceView:是Android平台自带的一个很好的性能分析工具。
2、SysTrace
3、Emmagee: 网易开发的一个Android性能监测工具,主要用于监控单个手机应用的CPU、内存、流量、启动耗时、电量、电流等性能状态的变化。用户可以自定义配置监控的采样频率以及性能的实时显示,最终会生成一份性能统计文件。 开源地址:https://github.com/NetEase/Emmagee
4、GT:腾讯开源的,开源地址:https://github.com/Tencent/GT
5、soloPi: 支付宝开源的Android自动化工具,主要有录制回放、性能测试、一机多控三项主要功能。性能测试的使用,请参考:https://github.com/alipay/SoloPi/wiki/Performance
6、腾讯 出品的PerfDog https://perfdog.qq.com/