奔溃(crash)
卡顿
兼容性问题(占据大多数时间)
发热/发烫
硬件耗电->产生热量
响应慢
2-5-8原则
2秒钟 -> 优
5秒钟 -> 可以接受
8秒钟 -> 不能接受
testin云测
STF实验室平台
Monkey
fiddler代理
network Emulator toolkit
Facebook ATC
BurpSuite
ApkTool/Dex2Jar/JD-GUI反编译
安装包签名
账户安全
proc文件-Jiffies
GT/soloPi
腾讯GT
battery historian
proc文件
腾讯GT
adb shell am start
soloPi插件
卡顿root cause
FPS/SM
GPU呈现模式/GT
卡顿分析
页面多度绘制
TraceView/StrictMode
频繁GC
内存泄露/溢出
内存占用
LMK
leakcanary
由于移动端的碎片化特征,需要确保App产品能够在不同系统版本,不同屏幕分辨率,不同系统定制ROM也能够有好的用户体验
系统版本兼容
Android:
2.2 2.3 milestone
4.0 4.1 4.2 4.4
5.0 5.1
6.0 6.1
7.0 7.1
8.0 8.1
9
IOS:
8
9
10
11
12
13
系统定制ROM兼容(Android)
小米MIUI
华为EMUI
魅族flyme
屏幕分辨率兼容
APP流量数据
https://tongji.baidu.com/research/app
云测平台
自建STF平台:http://www.lemfix.com/topics/341
App长时间在前/后台运行,用户对于App的稳定性有更高的要求。
通过稳定性测试来避免奔溃(crash)/无响应(ANR)/内存泄露等问题。
Monkey 支持Android
优点:
Google原生工具,使用简单,开源
缺点:
基于坐标,遍历深度不够,无详细报告
Maxim 支持Android
优点:
基于uiautomator引擎实现,多种模式运行
缺点:
不开源,无法定制
FastMonkey 支持IOS
优点:
基于XCTestWD,swiftmonkey二次开发,无需插桩 效率高
缺点:
配置复杂
安装
https://www.douban.com/note/701408420/
查看版本
$ adb version
查看设备连接情况
$ adb devices
使用「夜神模拟器」
杀死/重启adb服务
$ adb kill-server
$ adb start-server
查看当前运行的包名
$ adb shell dumpsys activity | find "mFocusedActivity"
dumpsys:解析信息
activity:页面名字
乱点1000次
$ adb shell monkey 1000
-p
用于约束限制,用此参数指定一个或多个包(App名字)
指定包之后,Monkey将只允许系统启动指定的App,如果不指定则允许启动设备中的所有APP
$ adb shell monkey -p com.lemon.lemonban 1000
-s
用于指定伪随机数生成器的seed值
如果seed相同,则两次Monkey测试所产生的事件序列也相同
# 提前指定,第一次Monkey测试出了bug
$ adb shell monkey -p com.lemon.lemonban -s 101 1000
# 第二次测试的流程和第一次一样就可以保证复现
$ adb shell monkey -p com.lemon.lemonban -s 101 1000
-v
日志级别
-v
默认值,仅提供启动提示,测试完成,最终结果
-v-v
提供较为详细的日志,包括每个发送到Activity的事件信息
-v-v-v
最详细的日志,包括了测试中选中/未选中的Activity信息
$ adb shell monkey -p com.lemon.lemonban -v -v 1000
$ adb shell monkey -p com.lemon.lemonban -v -v -v 1000
--throttle<毫秒>
指定用户操作间的时延
$ adb shell monkey -p com.lemon.lemonban --throttle 3000 1000
--randomize-throttle
指定随机延时,单位毫秒
执行1000次随机事件,间隔在0~300毫秒之间
$ adb shell monkey -p com.lemon.lemonban --throttle 300 --randomize-throttle 1000
杀死monky
$ adb shell
# 进入shell
$ shell
$ kill -9
$ adb shell monkey -p com.lemon.lemonban --pct-touch 100 1000
设置全部(100%)为点击事件执行1000次
现在APP网络环境复杂,如果APP没有对网络异常进行兼容处理,那么用户可能在日常使用中遇到APP闪退,ANR(程序无响应),数据丢失等问题
低于2G速度属于弱网,3G也可以划分为弱网,一般WIFI不划入弱网测试范畴
工具:
fiddler/charles
代理限速,设置延时
按照Charles抓取手机报文的方式设置代理
Network Emulator Toolkit
网卡限速,设置丢包和延时
facebook ATC
Linux 工具,需要部署环境,后续设备接入热点即可