欢迎大家来到IT世界,在知识的湖畔探索吧!
前言
一款优秀的 App 发布到应用市场,会伴随着用户流量的日益增长,经受着各项指标的考验,这里与大家畅聊下 App 专项测试技术。
1 主流技术概况
市场上主流的 App 开发技术主要有:
Native App:原生 App,基于操作系统开发
Web App:网页 App,基于 H5 实现,可通过浏览器访问
Hybrid App:混合型 App,结合原生和网页应用
React Native App:混合型 App,基于 JSX 来写原生界面
2 专业术语阐述
几种常见的 App 启动方式专业术语:
冷启动:当启动应用时,后台没有该应用的进程,这时系统会 force 一个新的进程分配给该应用
热启动:当启动应用时,后台已有该应用的进程,这时会从已有的进程来启动应用
温启动:介于冷启动和热启动之间,用户 back 退出 App,然后又启动。App 进程可能还在运行,但是 activity 需要重建,用户退出后,系统可能由于内存原因将 App 杀死,进程和 activity 都需要重启
注:以上说的启动,是通过点击 App 图标来启动,而另外一种方式是进入 App 最近使用的列表界面来启动应用,这种不应该叫启动,而是恢复。
3 具体场景分析
下面我们根据几种场景,分别站在用户和技术维度进行剖析:
3.1 场景一
用户反馈 App 启动到进入 App 时间长
3.1.1 为什么冷启动时间慢?
冷启动后,系统会 force 一个新的进程分配给它,所以先创建和初始化 Application 类,期间会有很多第三方 SDK 的初始化,再创建和初始化 MainActivity 类,一系列 view 的测量、布局、绘制,最后经过渲染显示在 App 界面上。
3.1.2 我们如何测试 App 启动时间?
使用 adb 命令获取启动时间
adb shell am start -W -n XXActivity
结果分析:
TotalTime:该应用所有 Activity 启动的耗时
WaitTime:系统启动应用耗时一般比 TotalTime 长,包括系统影响的耗时
3.2 场景二
用户反馈手机检测到 App 耗费流量
3.2.1 什么是流量?
手机流量是指手机上网产生的流量数据,用手机打开软件或进行互联网操作时,会和服务器交换数据,手机流量就是这数据的大小。运营商替我们手机转发数据报文,数据报文的总大小(字节数)即流量。
3.2.2 我们如何获取流量呢?
方法一:通过抓包测试法,最直接准确,但是操作步骤长,需要禁用其他 App 联网权限且需要 root 权限
方法二:TCP 收发长度统计,App 通信基本上基于 TCP,计算 TCP 的数据,这种方式简单不需要禁止其他 App 的联网权限,但这种方式 UDP 获取不到,只能获取 TCP 协议的流量
我们也可以借助 adb 命令分析网络流量
adb shell dumpsys netstats detail
通过获取各种数据包,显示网络连接统计数据,包括网络名以及连接的 Wi-Fi 名称、开始时间、结束时间等信息。
3.3 场景三
用户反馈操作 App 很不流畅,界面卡顿
大多数用户感知到卡顿等性能问题的最主要根源都是因为渲染性能,Android 系统无法及时完成复杂的界面渲染操作,就产生了卡顿/不流畅的现象。
3.3.1 我们如何测试呢?
1、渲染性能
中间的绿线是基准,超过绿色线越多,代表 GPU 工作越吃力,也就是我们说的卡顿。
我们也可以借助 adb 命令渲染性能的分析
adb shell dumpsys gfxinfo package-name
2、界面过度绘制
表示某些组件在屏幕上的一个像素点的绘制次数超过 1 次
一般来说,蓝色和绿色是可以接受的,性能比较优秀
3、频繁 GC
系统卡顿和自己本身也有关系,先天性不足,先在 Linux 上跑虚拟机,然后再用 Java 做开发,在后期优化上的成本增加更多,Java 没有提供任何操作来释放内存,是通过系统的内存回收机制(GC)来进行管理,但是 GC 时所有线程要暂停,也就是所谓的卡顿。
Android4.4 引进新的 ART 虚拟机来取代 Dalvik 虚拟机,Dalvik 虚拟机的 GC 是非常消耗资源的,ART 虚拟机的 GC 会动态提升垃圾回收的效率。
我们可以借助 adb 命令内存分析
adb shell dumpsys meminfo package-name
Android 程序内存被分为两部分:native 和 dalvik,dalvik 就是我们常说的 Java 堆,我们创建的对象是在这里分配的,native 部分通常是指 C/C++实现部分分配的内存。
3.4 场景四
用户反馈手机检测到 App 耗费电量
影响电量的因素:CPU、wakelock、无线数据(3G/4G/5G)、蓝牙、相机、GPS 等
3.4.1 我们如何测试呢?
我们可以借助 SDK 自带的反编译工具 framework-res.apk
手机中的每个组件,CPU、GPS、WI-FI 等运行时的能耗标准都保存在 power_profile.xml 文件中,运用反编译工具获取到手机的 power_profile 文件,本地获取文件给开发即可。
作者介绍
LJW:信也科技国际化测试专家
来源:微信公众号:拍码场
出处:https://mp.weixin.qq.com/s/dy7qNxI0Wz7NZYsqhhF4Ow
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/37718.html