当前位置:网站首页>面试百问:如何测试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站最好的视频!
边栏推荐
- Xcode modifies the default background image of launchscreen and still displays the original image
- Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb
- ASP.NET Core入门五
- Two methods of calling WCF service by C #
- What does it mean to prefix a string with F?
- Revit secondary development - project file to family file
- Remove the default background color of chrome input input box
- How to choose the appropriate automated testing tools?
- LeetCode707. Design linked list
- Leetcode1984. Minimum difference in student scores
猜你喜欢
php 获取图片信息的方法
The PHP source code of the new website + remove authorization / support burning goose instead of pumping
Firefox browser installation impression notes clipping
行测-图形推理-2-黑白格类
. Net automapper use
LeetCode206. Reverse linked list [double pointer and recursion]
行测-图形推理-3-对称图形类
LeetCode707. Design linked list
微服務遠程Debug,Nocalhost + Rainbond微服務開發第二彈
Line test - graphic reasoning - 3 - symmetric graphic class
随机推荐
Debezium系列之:mysql墓碑事件
微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹
[environment] pycharm sets the tool to convert QRC into py file
Vs custom template - take the custom class template as an example
Basic knowledge of binary tree
Revit secondary development - Hide occlusion elements
Unity development --- the mouse controls the camera to move, rotate and zoom
Nx10.0 installation tutorial
. Net automapper use
如何选择合适的自动化测试工具?
The PHP source code of the new website + remove authorization / support burning goose instead of pumping
Gazebo import the mapping model created by blender
0-5VAC转4-20mA交流电流隔离变送器/转换模块
Line test - graphic reasoning - 3 - symmetric graphic class
OpenGL job coordinate system
C development -- WPF simple animation
JS number is insufficient, and 0 is added
Debezium系列之:支持 mysql8 的 set role 語句
php 获取图片信息的方法
Use partial derivatives to display normals in unity