安卓进行稳定性测试

核心目标

验证App长时间运行,反复操作,各种干扰不Crash,不ANR,无内存泄漏,不死机,数据正常。
*

判定标准

无崩溃(crash),无ANR,OOM,长时间运行内存不持续上涨,功能可正常恢复。
*

前置准备

准备被测APP,拿到包名:

复制代码
  #获取包名
  adb shell pm list packages|findstr  xxxx

提前清理:关闭自动锁屏,省电,弹窗,自动更新,保证测试不被打断;开启日志抓取
*

测试工具
复制代码
###### Monkey

Monkey发送随机点击,滑动,按键,切换Activity等事件,自动检测崩溃,ANR,是稳定性标配工具。
复制代码
###### 常用命令:

    adb shell monkey -p shturl.cc/O --throttle 300 -v -v -v 100000 > D:\test\logcat\monkey_log.txt 

    #-p:指定对应的包
    #COUNT 100000 :事件总数数(运行事件的时间*延时时间)
    #--throttle 300:每个事件间隔300ms,模拟人操作节奏
    #-v-v-v:三级详细日志,方便定位问题
    #<D:\test\logcat\monkey_log.txt :输出日志到本地文件

    #通过事件数量来测试稳定性
复制代码
###### 实用增强参数(企业常用):

    adb shell monkey -p shturl.cc/O --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v -v -v 100000  > D:\test\logcat\monkey_log.txt 

    #--ignore-crashes:崩溃后不停止,继续跑(长时间稳定性适合)
    #--ignore-timeouts:ANR超时不终止
    #--pct-touch 60触摸占比;--pct-motion 20 滑动;--pct-appswitch  10页面切换,可自定义事件比例
复制代码
###### Monkey 日志怎么看

日志末尾关键词:
1. CRASH --\> 应用崩溃
2. ANR --\> 应用无响应
3. OOM --\> 内存溢出
复制代码
###### 专项稳定性场景(Monkey覆盖不到,必须手工/脚本)

Monkey随机,不能保证走核心业务流;需要固定业务场景循环跑:
* 工具:Appium
* 思路:写脚本按业务路径循环N小时,持续断言页面正常,监控crash,内存,FPS
* 适合:核心流程长时间稳定性,比Monkey更贴近真实用户
复制代码
###### 面试常问要点

* Monkey本质:随机事件压力测试,优点简单高效;缺点:无业务逻辑,路径不可控
* Monkey不能替代业务循环稳定性
* 稳定性重点看:Crash,ANR,OOM,内存泄漏,后台保活,干扰场景
相关推荐
疯华整猫3 小时前
否决 Flutter 提案那天,我发现自己也说不清 Framework 管什么
android
普通人64 小时前
WebGL与WebGPU入门指南
开发语言·webgl·1024程序员节
传奇开心果编程15 小时前
【Flutter踩坑排雷】第25课:ScrollController 误用坑|跳转失效、监听泄漏与“控制器未附加”
android·flutter·ios·移动开发·跨平台·dart·声明式ui
慕容雪_19 小时前
Capacitor8-Android打包完整手册
android·打包·capacitor
猫猫不是喵喵.21 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
阿杰m1 天前
Android源码第十三章:Bluetooth——沿一次发现走到控制器
android
booboosui1 天前
派活给另一个 AI:前后两次文件夹快照,就是交付清单
android
普通人61 天前
MySQL_FIND_IN_SET函数详解
android·数据库·mysql
好的佩奇2 天前
Dart 之集合元素
android·flutter·dart
Easyhood2 天前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose