实现高速点击的 Android Monkey 自动化工具 fastmonkey-代号 Maxim

主页:

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性能测试

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180124G032OQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券