如何高效的开展客户端的性能测试
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.
APP性能测试是什么
从网上查了一下,貌似也没什么特别的定义,我这边根据自己的经验给出一个自己的定义,如有巧合纯属雷同。
客户端性能测试就是,从业务和用户的角度出发,设计合理且有效的性能测试场景,制定各性能场景下的客户端性能指标(内存、CPU、卡顿数、帧率、电量、加载时长等),并制定规范化的执行流程,按照执行标准执行性能场景同时使用性能测试具收集性能数据,并对数据进行分析,如果有性能问题并对问题进行定位,配合开发进行修复验证发布,最后输出完整的性能报告。
从上面的定义中,我们可以得出,在APP的性能测试需要关注以下几方面,性能测试的场景的设计、性能指标的定义、规范化的执行流程、性能数据数据收集、性能数据分析、性能问题定位、性能测试报告。
性能测试并不是说我们上来找个工具,随便跑个场景,拿到数据,输出个报告,就可以了。每一步都应该做到有的放矢,从而体现出测试人员的专业性。
APP性能测试怎么做
下面我们分别来看一下:
性能测试场景的设计
场景可能是一个操作的不断重复,也可能是几个操作的组合再重复,对于性能测试的场景来说,他一定有重复的操作或者持续的操作,目的是通过重复或者持续的操作,把性能问题放大到一定程度,能够让我们发现问题。
举个栗子:以B站推荐tab为例,想测试feed滑动情况下的性能表现,那性能场景可以设计成,feed滑动50次,每次滑动间隔2s。
性能指标的定义
常见的移动端性能指标有:内存、cpu、帧率、卡顿数、wakp up数、展示时长等,关注什么性能指标是依托于我们的性能测试场景。
举个栗子:以B站推荐tab为例,当我们冷启APP进入推荐tab的时候,更关注数据展示时长,滑动场景更关注卡顿数,为不同场景设计合理的性能指标也是我们需要认真考虑的。
规范化执行流程
场景和指标都定义好了以后,就要开始执行了,这里要求要规范化执行,规范化执行不是简单的按照场景的定义去执行就好,而是要有很多关注的点。
可以定义的规范有哪些:
- 场景开始执行前需要等待多少s - 执行后需要等待多少s - 每次测试需不需要冷启或是必须重新安装 - 安装好需要等待多久才可以开始测试 - 测试账号、测试数据、设备、网络需不需要固定
每一个点都可能影响的性能数据的准确性,必须要定义规范,每次都要按着规范去执行,而且这个规范是动态,随着我们不断的测试,会发现很多影响性能数据的问题,都必须定制规范,加以规避。同时好的规范能够未我们后面进行性能数据分析打下基础。
性能数据数据收集
性能数据收集可能是整个客户端性能测试中最简单的部分了,有成熟的工具perfdog可以使用,方便简单,也可以使用商业化的perfdog service实现自动化的性能数据收集,就是需要花钱。
性能数据分析
在收集到性能数据之后,就要去分析数据,如何分析,下面我简单说一下,后面会出文章专门说如何对性能数据进行分析
走势图,从走势图上我们大致可以看出该场景在当前版本的性能表现,可以得出以下结论:
- 和之前版本的走势图进行对比,性能指标的波动情况
- 性能指标峰值、场景的均值以及涨幅的变化
- 场景的起始值与之前版本的变化
- 场景结束后的值与之前版本的变化
性能问题定位
在进行完性能数据分析以后,如果有问题,就需要去定位问题是那一块业务的问题或者是哪一个mr引起的问题,就需要回溯。
- 先找开发,和开发沟通一下,看能否根据问题表象确定问题,如果确认不了,就需要测试定位是哪个mr合入引起的
- 列出本次版本合入所有mr,筛选出那些mr是性能问题所在的业务
- 找mr合入前后的包重新跑,确认每个mr是否有影响
- 当确定是哪个mr合入引起的性能问题后,再次和开发沟通
性能测试报告
性能测试报告的目的是给出当前版本的性能表现情况,需要包含一些核心的模块
- 性能问题归因
- 各个场景的性能指标数据
- 测试环境以及方案
- 各个场景的性能指标走势图
以上我对app性能测试的一些粗浅理解和经验,有问题可以留言,一起探讨。。
欢迎大家访问我的博客,有更多关于客户端性能测试、自动化测试的内容, 博客地址
Recommend
-
27
-
31
Gitery - 高效易用的 GitHub 客户端 - NEXT
-
31
作者简介:ASCE1885, 《Android 高级进阶》 [1] 和 《Android 高级进阶(源码剖析篇)》 [2] 作者。 本文由于潜在的商业目的,未经授权不开放全文转载许可,谢谢! 本文...
-
7
2021年中国人民银行工作会议召开,会议要求,稳妥开展数字人民币试点测试。推动国库高质量发展。深化征信在数字金融和经济治理中的应用。提高反洗钱调查和监测工...
-
6
iOS 程序能从网络获取数据。少量的 KV 类型数据可以直接写文件保存在 Disk 上,App 内部通过读写接口获取数据。稍微复杂一点的数据类型,也可以将数据格式化成 JSON 或 XML 方便保存,这些通用类型的增删查改方法也很容易获取和使用。这些解决方案在数据量在数...
-
3
如何通过多终端自动化测试实现高效的质量反馈机制 当下,已经有越来越多的团队在日常开发中引入CI/CD工具,以完善开发流程并提高人效。在诸如UWA Pipeline这类工具的加...
-
2
汽车 北京开展自动驾驶公交道路测试,每辆车均已购买500万保险 电科技赛亚04-01 15:36 259 近两年来,自动驾驶在国内取得了快速的发展,一方面乘用车...
-
2
在上一篇《APP...
-
3
在上一篇《 APP自动化测试框...
-
4
如何实现高效的自动化渗透测试? 2024-03-20 13:19:53 传统的渗透测试过程依赖专业人员的背景知识,存在人力和时间开销大等问题,而自动化渗透测试在一定程度上克服了传统渗透测试的弊端。
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK