主页:
https://github.com/zhangzhao4444/Maxim
优势
高速点击,每秒 10-15 action!
多平台兼容! 同时兼容Android 5-8
轻量极简!
如何使用
adb push framework.jar monkey.jar 文件到 /sdcard
执行 adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.panda.videoliveplatform --uiautomatormix --running-minutes 60
参数说明
tv.panda.test.monkey.Monkey 主调入口 无需修改
-p com.panda.videoliveplatform 待测appid
策略模式
--uiautomatormix 混合模式(70%控件解析随机点击,其余30%按原Monkey事件概率分布)
--pct-uiautomatormix n 可自定义混合模式中控件解析事件概率
--uiautomatordfs DFS深度遍历算法(优化版)(注 Android5不支持dfs)
非以上两种为原始Monkey策略
执行时长
--running-minutes 60 执行60分钟monkey
场景细粒度控制
--act-whitelist-file /sdcard/awl.strings 自定义Activity白名单
例:
锁定跳转只可进入其中的某个Activity
--act-blacklist-file 同上
其他参数及用法同原始Monkey
特性简介
a. 速度快 每秒10-15个Action事件
界面控件解析算法通过改造底层framework,直接使用AccessibilityNodeInfo并优化减化其调度流程,解析速度控制在50ms内,可对界面变化做快速反应。
b. Android全平台兼容
兼容Android5,6,7,8各系列。通过反射原理动态解析各平台Api差异,使用一套逻辑兼容全系列。
c. 防跳出
控件解析时获取进程推栈Top Activity,按非白即黑立即执行切回。各事件执行时按特有逻辑屏蔽掉状态栏,防止误操作。
d. 防休眠
休眠时自动检测并唤醒屏幕。
e. 熔断机制
当事件按某个特有模式固定执行一段时间时则自动触发熔断开始自拉活,防止假死。如重复点击同一位置n秒。
f. 场景细粒度
引入Activity黑白名单,可控制限定在某些场景内。如只测试某几个相关页面。
g. 随机自动输入
检测当遇到可输入模式时,按设定(ape.string)或随机输入键盘事件。如输入666或2333弹幕
随机输入 需要提前安装adbkeyboard
https://github.com/senzhk/ADBKeyBoard
h. 崩溃堆栈自动保存
当崩溃(crash、oom)发生时自动抓取,并存于/sdcard/crash-dump.log
todo
特殊事件序列
引入GT性能测试
领取专属 10元无门槛券
私享最新 技术干货