从网上查了一下,貌似也没什么特别的定义,我这边根据自己的经验给出一个自己的定义,如有巧合纯属雷同。
客户端性能测试就是,从业务和用户的角度出发,设计合理且有效的性能测试场景,制定各性能场景下的客户端性能指标 (内存、CPU、卡顿数、帧率、电量、加载时长等),并制定规范化的执行流程,按照执行标准执行性能场景同时使用性能测试具收集性能数据,并对数据进行分析,如果有性能问题并对问题进行定位,配合开发进行修复验证发布,最后输出完整的性能报告。
从上面的定义中,我们可以得出,在 APP 的性能测试需要关注以下几方面,性能测试的场景的设计、性能指标的定义、规范化的执行流程、性能数据数据收集、性能数据分析、性能问题定位、性能测试报告。
性能测试并不是说我们上来找个工具,随便跑个场景,拿到数据,输出个报告,就可以了。每一步都应该做到有的放矢,从而体现出测试人员的专业性。
下面我们分别来看一下:
场景可能是一个操作的不断重复,也可能是几个操作的组合再重复,对于性能测试的场景来说,他一定有重复的操作或者持续的操作,目的是通过重复或者持续的操作,把性能问题放大到一定程度,能够让我们发现问题。
举个栗子:以 B 站推荐 tab 为例,想测试 feed 滑动情况下的性能表现,那性能场景可以设计成,feed 滑动 50 次,每次滑动间隔 2s。
常见的移动端性能指标有:内存、cpu、帧率、卡顿数、wakp up 数、展示时长等,关注什么性能指标是依托于我们的性能测试场景。
举个栗子:以 B 站推荐 tab 为例,当我们冷启 APP 进入推荐 tab 的时候,更关注数据展示时长,滑动场景更关注卡顿数,为不同场景设计合理的性能指标也是我们需要认真考虑的。
场景和指标都定义好了以后,就要开始执行了,这里要求要规范化执行,规范化执行不是简单的按照场景的定义去执行就好,而是要有很多关注的点。
可以定义的规范有哪些:
- 场景开始执行前需要等待多少s
- 执行后需要等待多少s
- 每次测试需不需要冷启或是必须重新安装
- 安装好需要等待多久才可以开始测试
- 测试账号、测试数据、设备、网络需不需要固定
每一个点都可能影响的性能数据的准确性,必须要定义规范,每次都要按着规范去执行,而且这个规范是动态,随着我们不断的测试,会发现很多影响性能数据的问题,都必须定制规范,加以规避。同时好的规范能够未我们后面进行性能数据分析打下基础。
性能数据收集可能是整个客户端性能测试中最简单的部分了,有成熟的工具 perfdog 可以使用,方便简单,也可以使用商业化的 perfdog service 实现自动化的性能数据收集,就是需要花钱。
在收集到性能数据之后,就要去分析数据,如何分析,下面我简单说一下,后面会出文章专门说如何对性能数据进行分析
在进行完性能数据分析以后,如果有问题,就需要去定位问题是那一块业务的问题或者是哪一个 mr 引起的问题,就需要回溯。
性能测试报告的目的是给出当前版本的性能表现情况,需要包含一些核心的模块
以上我对 app 性能测试的一些粗浅理解和经验,有问题可以留言,一起探讨。。