硬件耗电->产生热量
2-5-8原则 2秒钟 -> 优 5秒钟 -> 可以接受 8秒钟 -> 不能接受
由于移动端的碎片化特征,需要确保App产品能够在不同系统版本,不同屏幕分辨率,不同系统定制ROM也能够有好的用户体验
Android:
IOS:
小米MIUI
华为EMUI
魅族flyme
APP流量数据
https://tongji.baidu.com/research/app
App长时间在前/后台运行,用户对于App的稳定性有更高的要求。
通过稳定性测试来避免奔溃(crash)/无响应(ANR)/内存泄露等问题。
优点:
Google原生工具,使用简单,开源
缺点:
基于坐标,遍历深度不够,无详细报告
优点:
基于uiautomator引擎实现,多种模式运行
缺点:
不开源,无法定制
优点:
基于XCTestWD,swiftmonkey二次开发,无需插桩 效率高
缺点:
配置复杂
https://www.douban.com/note/701408420/
$ adb version
$ adb devices
使用「夜神模拟器」
$ 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
$ adb shell
# 进入shell
$ shell
$ kill -9 <monky-pid>
$ adb shell monkey -p com.lemon.lemonban --pct-touch 100 1000
设置全部(100%)为点击事件执行1000次
现在APP网络环境复杂,如果APP没有对网络异常进行兼容处理,那么用户可能在日常使用中遇到APP闪退,ANR(程序无响应),数据丢失等问题
低于2G速度属于弱网,3G也可以划分为弱网,一般WIFI不划入弱网测试范畴
工具:
代理限速,设置延时
按照Charles抓取手机报文的方式设置代理
网卡限速,设置丢包和延时
Linux 工具,需要部署环境,后续设备接入热点即可