当前位置:网站首页>面试百问:如何测试App性能?
面试百问:如何测试App性能?
2022-07-07 21:47:00 【小梧敲代码】
APP性能测试几乎是客户端面试必问。
为什么要做App性能测试
如果APP总是出现卡顿或网络延迟的情况,降低了用户的好感,用户可能会抛弃该App,换同类型的其他应用。如果APP的性能较好,用户体验高,使用起来丝滑顺畅,那该应用的用户粘性也必然会提高。
那我们该如何做App性能测试,以及该关注哪些指标呢?
怎么做App性能测试:
目前,基本上都使用现有的工具来进行性能测试,比如 Android studio 中有自带工具,
也有其他公司开源的一些 性能测试的工具,主要还是分为两种,一种是自研的,一种是外部提供的开源/收费的。
自研:一般每家公司都会有都会有自研的收集性能数据的平台,当然有些是购买的外部的服务,经过二次开发之后再供使用。
开源:各大公司都有一些开源的软件免费供大家使用,部分如下
1、TraceView:
TraceView 是Android平台配备一个性能分析的工具,用于分析计算性能,跟踪方法耗时导致的卡顿问题。它使用图形化的方式把结果呈现出来,直观的反应出代码的执行时间、执行次数。
如何使用:通过Android studio自带的traceview查看即可(Android profiler)。开发人员使用此工具的比较多,测试人员一般使用其他的开源App。
2、Emmagee:
网易开发的一个Android性能监测工具,它可以可以监控单个应用性能, 并且支持用户自定义配置监控的采样频率以及性能的实时显示,最终会生成一份性能统计文件。
开源地址:https://github.com/NetEase/Emmagee ,在该地址可以下载到Emmagee 的安装包以及相关使用说明。只支持Android
3、GT:
GT(随身调)是腾 讯开源的,它支持iOS和Android两个手机平台,
GT Android版是腾讯 MIG 专项测试组自行研发的 Android APP 随身调测平台,它是直接运行在手机上的“集成调测环境”(ITE, Integrated Test Environment)。
利用GT,仅凭一部手机,无需连接电脑,即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。
开源地址:https://github.com/Tencent/GT
4、soloPi:
支付宝开源的Android自动化工具,主要有录制回放、性能测试、一机多控三项主要功能。
录制回放:SoloPi拥有录制操作的能力,用户只需要通过SoloPi执行用例步骤,SoloPi就能够将用户的操作记录下来,并且支持在各个设备上进行回放,这一切都能够在手机上独立完成。
性能测试: SoloPi能够记录待测应用的各项指标,你可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,Soloπ还支持性能加压,能够对CPU、内存进行限制,复现应用在性能较差、网络环境不佳场景下的表现。
一机多控:SoloPi支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。
开源地址:https://github.com/alipay/SoloPi/wiki/Performance
市面上常见的性能测试工具就这几款,可以根据自己的需求选择。笔者最近常用SoloPi。
APP性能测试关注哪些指标
1、启动耗时
App启动耗费的时间是我们一个重要的时间,其中又分为热启动和冷启动等
测试启动时间比较依赖人为判断,一般我们是通过录屏,然后使用分帧的工具对 启动时屏幕渲染的过程做一个精细化的耗时分析。
优点:能真实反馈App的耗时;无侵入,离线分析,可对竞品进行精细化分析
缺点:判断时间比较依赖人肉眼判断,自动化工具无法判断。
2、单位时间耗电量、单位时间网络流量消耗
3、移动终端相关资源的利用率:不仅仅服务器端的CPU、内存、磁盘I/O、网路是性能测试关注的重要内容,移动端的CPU、内存也是我们需要关注的内容之一。
cpu 主要关注运行时cpu占有率和后台情况下的cpu占有率
内存 进入某个业务场景下的的内存增量, 和 在多链路执行国购的 内存总消耗
4、业务响应时间、帧率(fps):由于人类的特殊结构,当看画面的帧率高于24的时候,就会认为是连贯的。fps越高,画面越流畅。
FPS 分为滑动时的FPS,如果涉及视频/动画/直播,还要该业务运行时的FPS,
以上,对APP性能测试做了个简单的介绍,了解了常见的工具以及性能指标,后续要学习的就是如何设计APP性能测试用例、APP性能测试的执行以及报告的编写等等~
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
点击文末小卡片领取 |
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
边栏推荐
- PHP method of obtaining image information
- 行测-图形推理-4-字母类
- Remember that a development is encountered in the pit of origin string sorting
- 行测-图形推理-5-一笔画类
- Unity technical notes (I) inspector extension
- This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘
- LeetCode707. Design linked list
- Get the week start time and week end time of the current date
- Redis cluster installation
- C # Development -- pit encountered in JS intermodulation
猜你喜欢
0-5vac to 4-20mA AC current isolated transmitter / conversion module
数字化转型:五个步骤推动企业进步
Line test - graphic reasoning - 3 - symmetric graphic class
How to choose the appropriate automated testing tools?
OpenGL configuration vs2019
[azure microservice service fabric] start the performance monitor in the SF node and set the method of capturing the process
XMIND mind mapping software sharing
[problem] pytorch installation
Matplotlib快速入门
Time convolution Network + soft threshold + attention mechanism to realize residual life prediction of mechanical equipment
随机推荐
Robot autonomous exploration series papers environment code
OpenGL job - texture
Revit secondary development - shielding warning prompt window
Form组件常用校验规则-2(持续更新中~)
UWA Q & a collection
戴森官方直营店免费造型服务现已开放预约 先锋科技诠释护发造型理念,助力消费者解锁多元闪耀造型
Dayu200 experience officer MPPT photovoltaic power generation project dayu200, hi3861, Huawei cloud iotda
Leetcode206. Reverse linked list
Gazebo import the mapping model created by blender
Revit secondary development - cut view
Debezium series: MySQL tombstone event
Revit secondary development - get the thickness / length / height of the beam
0-5vac to 4-20mA AC current isolated transmitter / conversion module
Matplotlib quick start
Kaggle-Titanic
Revit secondary development - operation family documents
C # realizes the communication between Modbus protocol and PLC
vite Unrestricted file system access to
Common verification rules of form components -2 (continuously updating ~)
This experimental syntax requires enabling the parser plugin: ‘optionalChaining‘