monkey
是一个在模拟器或者设备上运行的程序,用于生成用户事件的伪随机流
安装
Android SDK 自带
使用
- 基本配置选项
adb shell monkey 100 # 对所有包随机操作 100 次
- 操作约束
adb shell monkey -p com.xueqiu.android 100 # 指定对雪球app 随机操作 100 次
- 事件类型和频率
- 调试选项
<!---->
- 事件计数
adb shell monkey -p com.xueqiu.android -s 20 80 # 时间种子,重复上一次的随机事件
adb shell monkey -p com.xueqiu.android -vv -s 20 80 # 详细日志
adb shell monkey -p com.xueqiu.android --throttle 500 100 # 时间延迟,使操作速度慢下来
adb shell monkey -p com.xueqiu.android --pct-touch 10 1000 # 事件百分比
常用事件
--pct-touch
:触摸事件,比如点击--pct-motion
:动作时间,比如滑动--pct-trackball
:轨迹事件,比如移动+点击,曲线滑动--pct-majornav
:主要导航事件,比如回退按钮、菜单按键
maxim
对 monkey 的改进,包括基于遍历规则,提高性能
https://github.com/zhangzhao4...
AppCrawler
https://github.com/seveniruby...
环境要求
- java 8
- appium 1.8.x
安装方法
- 直接下载:https://pan.baidu.com/s/1dE0JDCH
- 从源代码编译
执行参数
- capability设置:与appium一致
- testcase:用于启动APP后的基础测试用例,可以理解为前置条件
- selectedList:遍历范围设定
- triggerActions:特定条件触发执行动作的设置
执行参数比配置文件优先级更高
自动化支持--testcase
testcase 的完整形态
- given:所有先决条件
- when:先决条件成立后的行为
- then:断言集合
testcase 的简写形态
- xpath:对应 when 里的 xpath
- action:对应 when 里的 action
动作支持--action
- back:后退
- backApp:回退到当前的 APP,默认等价于 back 行为,可定制
- monkey:随机事件
- xxx():执行代码
Thread.sleep(2000)
driver.swipe(0.9, 0.5, 0.1, 0.5)
- click:点击
- longTap:长按
自动遍历支持
- selectedList:需要被遍历的元素范围
- firstList:优先被点击
- lastList:最后被点击
- tagLimitMax:同祖先(同类型)的元素最多点击多少次
- backButton:当所有元素都被点击后,默认后退控件定位
- blackList:黑名单
- maxDepth:遍历的最大深度
触发器
triggerActions:
- 需要特定次数的触发动作
- 通常用于处理弹框
- xpath:指定具体按钮
- action:动作
- times:规则的使用次数
自动遍历过程
- 信息获取
- 把当前APP的界面 dump 为 xml 结构
- 获取待遍历元素
- 遍历范围 selectedList
- 过滤黑名单、小空间、不可见控件 blackList
- 重排控件顺序 firstList、lastList
- 跳过已点击,以及跳过限制点击的控件 tagLimit
- 根据匹配的规则执行 action
- 循环上面的步骤
日志记录
执行后,生成一个日志文件夹,保存所有的点击截图
其中日志记录信息都保存在 appcrawler.log 文件中
高级用法
生成 demo.yaml 文件: appcrawler --demo
指定配置文件: -c 配置文件路径
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。