APP专项测试、性能测试、adb命令
14、获取启动时间:adb shell am start -W 包名/activity名(-W::获取时间 S :启动前强停 ,冷启动 -R :数字,启动次数)16、获取CPU:adb shell top -s cpu(模拟器把cpu改成9)CPU占用过高可能出现的问题:手机卡顿、发烫、电量消耗严重(后台运行的程序太多)D:CPU运算:复杂的运算逻辑,死循环等会直接导致CPU负载过高,会导致耗电。
- APP专项测试
APP专项测试
1、兼容性
手机型号:市场主流机型(三星、小米、oppo、华为)
系统版本:安卓4.X-7.X;IOS9.X-12.X
分辨率:10801920、7201280;
屏幕尺寸:5.1、5.5、4.7;屏幕类型:刘海屏、水滴屏、曲面屏、折叠屏
网络:2G\3G、4G、WI-FI
应用兼容性:
与手机硬件(HOME键、电源键、音量调节)
与外部硬件设备兼容(耳机、蓝牙)
与操作系统软件兼容(系统时间、LBS定位、WLAN设置)
与其他APP兼容(后台在播放音乐时,进入动态页面点击动态视频播放,系统如何处理)
如何做兼容性测试:
使用不同机型打开软件操作,无异常即可
若公司没有太多机型,可参考云测平台或模拟器。
2、安装
- 正常场景:
从不同渠道安装
不同操作系统安装
不同路径安装(手机、sd卡) - 异常场景:
中断安装(关机、断网),中断之后能否恢复安装
存储空间不足安装
安装时手动取消或暂停,恢复之后是否能正常安装
正在运行时能否覆盖安装(后台运行、前台运行;需要考虑是否会打断用户操作)
低版本覆盖高版本
卸载后再安装(卸载后是否会清除数据)
3、卸载
- 正常卸载(手机卸载/使用第三方软件卸载)
- 运行时卸载(后台运行)
- 取消卸载(第三方软件/二次弹窗确认时取消)
- 中断卸载(关机)
- 卸载后数据残余(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(如果不做任何提示,默认需要清空残留数据)
4、升级(日常升级、强制升级)
- 从临近版本升级
- 跨版本升级
- 不同渠道升级
- 升级成功提醒(红点提示/消息提示)
- 升级前是否提醒(消息推送提示升级/强制升级不提醒)
- 当前版本是否有升级能力(n升n+1,升级规则)
5、干扰测试:
- 运行时接打电话
- 收发信息
- 音频电话
- 查看应用推送(其他软件的推送/当前软件的推送)
- 连接蓝牙设备
- 接收文件弹窗提醒(确认接收/拒绝接收)
- 旋转屏幕
- 切换网络(移动数据、Wi-Fi 自动切换)
- 手机自带应用(相机、手电筒、计算器)
- 低电提醒
- 插拔充电器
6、push推送
-
推送服务器(是否按照规则推送):
推送内容
推送时间
推送频率
推送对象 -
手机端
不接收消息,将不会受到任何推送
接收消息:
APP在前台运行时,消息如何显示;
APP在后台运行时,消息如何显示;
APP离线,消息如何显示。
消息能否打开
接收时设置:
接收消息但不提醒:手机提醒不会触发;
接收消息且提醒:接收消息的同时触发提醒(结合手机模式:静音\震动\铃声);
接收消息但不显示内容(例如:微信发来一条消息);
7、用户体验:舒适、友好、易用、有用;
ui界面测试(原型图设计是否合理)
横竖屏测试(内容是否展示异常)
易用性测试(空数据提示、菜单层次是否过深、业务操作步骤是否过多、按钮位置是否适中)
手机辅助功能测试(色盲/盲人模式)
8、其他测试
设置app是否获取该(相机、相册、通讯录)权限
手机端测试需要注意手势,左右滑翻页,横竖屏切换,前后台切换。
- APP测试性能
APP测试性能
性能指标:内存、cpu、流量、电量、启动速度、流畅度、稳定性等。
- 内存
soloPi工具(只能用于安卓)
监控指标:PSS(实际使用内存)和Private dirty(私有内存)
测试过程中实际看PSS
常见内存问题:
内存泄漏:内存的曲线持续增长,增的远>释放的内存
内存溢出:一定是因为有内存泄漏才会出现,因为内存泄漏长了突然降为0(应用停止运行)
异常曲线图:
正常曲线图:(有增有减)
-
CPU时间片
基线:如果有基线要求,CPU曲线图是否长期超过基线的现象)
如果没有基线,行业默认90%
CPU占用过高可能出现的问题:手机卡顿、发烫、电量消耗严重(后台运行的程序太多)
快速恢复:清空后台运行的进程 -
流量
使用了多长时间,消耗了多少流量
测试怎么测:例如:1个小时持续刷新,查看流量消耗
流量优化方法(打开页面速度过慢,如何优化):
A:数据的压缩
B:不同数据格式的采用
C:控制访问次数
D:只获取必要的数据
E:缓存机制
F:针对不同的网络类型设置不同的访问策略 -
电量
使用了多长时间,消耗了多少电量
测试怎么测:例如:1个小时持续刷新,查看电量消耗
常见电量消耗大的场景:
A:定位,尤其是调用GPS定位
B:网络传输,尤其是非wifi环境
C:屏幕亮度
D:CPU运算:复杂的运算逻辑,死循环等会直接导致CPU负载过高,会导致耗电
E:walk_locker(锁屏-解锁)时间和次数
注意:公司是否有基线要求,如果没有基线,可以和竞品对比测试 -
启动速度
冷启动:APP离线的状态启动,时间长
热启动:APP后台运行的状态下启动,时间短
启动速度测试方法:
adb shell am start -W 包名/Activity名 -
流畅度
指标:帧率(FPS):一秒内呈现给用户的图片数
FPS越高画面越流畅(一般在24,60fps以上最佳) -
稳定性:长时间对应用程序无序操作,检验应用程序是否出现异常,如闪退、无响应、ANR等。
稳定性测试工具-------Monkey
响应时间不达标:
增加系统硬件(CPU、内存、硬盘)
优化代码
优化数据库(建立索引,分表/分库)
优化网络(对网络增加带宽)
模拟器常见异常处理
问题1:devices offline(设备离线)解决方案:重启模拟器
问题2:dvices not found(找不到设备)解决方案:重启模拟器
问题3:more than one devices emulater(连接了多个设备)
解决方案:
获取设备列表:adb devices
断开不需要的设备:adb disconnect 手机ip
-
ADB命令
ADB命令
-
查看设备列表:adb devices
-
查看设备列表:adb devices
-
无线连接设备:adb connect 手机ip(手机和电脑处于同一网段)
-
关闭adb服务:adb kill-server
-
开启adb服务:adb start-server
-
安装软件包:adb install /路径/软件包文件名(-r 保留数据 -t强制覆盖 例如:adb install -r -t /路径/软件包文件名)
-
卸载软件包:adb uninstall app的包名
-
列出手机装的所有app的包名:adb shell pm list packages
列出手机系统自带的包名:adb shell pm list packages -s
列出安装的第三方的包名:adb shell pm list package -3 -
获取当前窗口(查看进入当前窗口的包名/activity名):
windows:adb shell dumpsys window | findstr mCurrentFocus
Mac:adb shell dumpsys window | grep mCurrentFocus -
清除应用数据与缓存:adb shell pm clear 包名
-
启动/停止应用:
启动:adb shell am start -W 包名/activity名
注意⚠️:这里的activity名从获取当前窗口步骤取
停止:adb shell am force-stop包名 -
获取APP日志:
adb logcat > 本地文件
注意:执行命令后,手机上操作复现步骤
adb logcat | grep error > 本地文件
抓取日志后重定向到某个文件
>:覆盖文件内容
>>:追加在文件末尾
使用场景:测试期间记录日志。adb logcat > 本地文件 -
获取启动时间:adb shell am start -W 包名/activity名(-W::获取时间 S :启动前强停 ,冷启动 -R :数字,启动次数)
-
获取内存:adb shell dumpsys meminfo 包名
获取当前执行命令时内存的占用情况: -
获取CPU:adb shell top -s cpu 或 adb shell top -s 9(模拟器把cpu改成9)
adb shell dumpsys cpuinfo(查看当前Cpu占用情况)
-s按指定行排序,-m显示最大数量
- 获取APP流量消耗值
1、获取userId
adb shell dumpsys package 包名 | findstr userId
2、获取上行流量(返回数据单位为bytes)
adb shell cat proc/uid_stat/userId/tcp_snd
3、获取下行流量(返回数据单位为bytes)
adb shell cat_proc/uid_stat/userId/tcp_rcv
- 获取电量消耗
获取整个设备的电量消耗信息: adb shelldumpsys batterystats | more
获取某个apk的电量消耗信息: adb shelldumpsys batterystats com.Package.name | more
| more:是因为输出信息太多,使用more分篇查看
- Cash测试步骤
1.打开cmd,输入命令adb devices查看设备连接成功
2.找到patpat包名
adb shell pm list packages
3.monkey测试
adb shell monkey -v -p com.interfocusllc.patpat 60000
adb shell monkey -v -p com.interfocusllc.patpat 60000 --throttle 1000
–throttle:指定用户操作间的时延,单位毫秒。
4.输入日志到对应文件夹
adb logcat -v time *:E | findstr “com.interfocusllc.patpat” > D:\crash.txt
ctrl +C 停止抓取
-v ,log详细程度,-v最详细
time选项,按照时间格式显示日志。
*:E 过滤出所有级别为Error的日志
|:使用管道符将adb logcat输出传递给findstr命令,进一步筛选出包含“com.interfocusllc.patpat”的日志。
>:将输入内容写入D盘crash.txt文件
打开crash.txt文件(或者可以直接在命令框检索)
ctrl +F 搜索以下关键字 查看闪退的日志
程序无响应 搜索“ANR”
force finishing
奔溃问题 “exception”
更多推荐
所有评论(0)