4

如何高效的开展客户端的性能测试

 3 years ago
source link: https://segmentfault.com/a/1190000040609923
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

APP性能测试是什么

从网上查了一下,貌似也没什么特别的定义,我这边根据自己的经验给出一个自己的定义,如有巧合纯属雷同。

客户端性能测试就是,从业务和用户的角度出发,设计合理且有效的性能测试场景,制定各性能场景下的客户端性能指标(内存、CPU、卡顿数、帧率、电量、加载时长等),并制定规范化的执行流程,按照执行标准执行性能场景同时使用性能测试具收集性能数据,并对数据进行分析,如果有性能问题并对问题进行定位,配合开发进行修复验证发布,最后输出完整的性能报告。

从上面的定义中,我们可以得出,在APP的性能测试需要关注以下几方面,性能测试的场景的设计、性能指标的定义、规范化的执行流程、性能数据数据收集、性能数据分析、性能问题定位、性能测试报告。

性能测试并不是说我们上来找个工具,随便跑个场景,拿到数据,输出个报告,就可以了。每一步都应该做到有的放矢,从而体现出测试人员的专业性。

image-20210817201225068

APP性能测试怎么做

下面我们分别来看一下:

性能测试场景的设计

​ 场景可能是一个操作的不断重复,也可能是几个操作的组合再重复,对于性能测试的场景来说,他一定有重复的操作或者持续的操作,目的是通过重复或者持续的操作,把性能问题放大到一定程度,能够让我们发现问题。

​ 举个栗子:以B站推荐tab为例,想测试feed滑动情况下的性能表现,那性能场景可以设计成,feed滑动50次,每次滑动间隔2s。

性能指标的定义

​ 常见的移动端性能指标有:内存、cpu、帧率、卡顿数、wakp up数、展示时长等,关注什么性能指标是依托于我们的性能测试场景。

举个栗子:以B站推荐tab为例,当我们冷启APP进入推荐tab的时候,更关注数据展示时长,滑动场景更关注卡顿数,为不同场景设计合理的性能指标也是我们需要认真考虑的。

规范化执行流程

​ 场景和指标都定义好了以后,就要开始执行了,这里要求要规范化执行,规范化执行不是简单的按照场景的定义去执行就好,而是要有很多关注的点。

可以定义的规范有哪些:

- 场景开始执行前需要等待多少s
- 执行后需要等待多少s
- 每次测试需不需要冷启或是必须重新安装
- 安装好需要等待多久才可以开始测试
- 测试账号、测试数据、设备、网络需不需要固定

​ 每一个点都可能影响的性能数据的准确性,必须要定义规范,每次都要按着规范去执行,而且这个规范是动态,随着我们不断的测试,会发现很多影响性能数据的问题,都必须定制规范,加以规避。同时好的规范能够未我们后面进行性能数据分析打下基础。

image-20210817203621029

性能数据数据收集

性能数据收集可能是整个客户端性能测试中最简单的部分了,有成熟的工具perfdog可以使用,方便简单,也可以使用商业化的perfdog service实现自动化的性能数据收集,就是需要花钱。

性能数据分析

在收集到性能数据之后,就要去分析数据,如何分析,下面我简单说一下,后面会出文章专门说如何对性能数据进行分析

  • 走势图,从走势图上我们大致可以看出该场景在当前版本的性能表现,可以得出以下结论:

    • 和之前版本的走势图进行对比,性能指标的波动情况
    • 性能指标峰值、场景的均值以及涨幅的变化
  • 场景的起始值与之前版本的变化
  • 场景结束后的值与之前版本的变化

性能问题定位

在进行完性能数据分析以后,如果有问题,就需要去定位问题是那一块业务的问题或者是哪一个mr引起的问题,就需要回溯。

  • 先找开发,和开发沟通一下,看能否根据问题表象确定问题,如果确认不了,就需要测试定位是哪个mr合入引起的
  • 列出本次版本合入所有mr,筛选出那些mr是性能问题所在的业务
  • 找mr合入前后的包重新跑,确认每个mr是否有影响
  • 当确定是哪个mr合入引起的性能问题后,再次和开发沟通

性能测试报告

性能测试报告的目的是给出当前版本的性能表现情况,需要包含一些核心的模块

  • 性能问题归因
  • 各个场景的性能指标数据
  • 测试环境以及方案
  • 各个场景的性能指标走势图

以上我对app性能测试的一些粗浅理解和经验,有问题可以留言,一起探讨。。

欢迎大家访问我的博客,有更多关于客户端性能测试、自动化测试的内容, 博客地址


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK