1、Monkey
- https://developer.android.com/studio/test/monkey
- 运行在模拟器或设备上的程序,生成用户事件的伪随机流
- 比如点击、触摸或手势,以及许多系统级事件
Monkey分类
- 基本配置:设置操作数量
- 操作限制:只测指定的包
- 事件类型和出现频率
- 调试选项
Monkey工作原理
Monkey基本使用
-
adb shell monkey -p com.xueqiu.android -v 500
,生成500个随机事件 -
adb shell monkey -p com.xueqiu.android -vv 500
,打印详细日志 -
adb shell monkey -p com.xueqiu.android -v --throttle 300 30
,间隔300毫秒运行一次 -
adb shell monkey -p com.xueqiu.android -v -s 200 500
,加入时间种子,每次固定运行一些操作
Monkey事件
--pct-touch <percent>
点击事件(按下弹起)--pct-motion <percent>
移动事件(按下,移动,弹起)--pct-trackball <percent>
轨迹球事件(随机移动+概率点击)--pct-nav <percent>
导航事件(点击设备的上、下、左、右按键)--pct-majornav <percent>
点击王要导肌按键旳操作(键盘的中问徙、凹悠按键、菜单按键)--pct-syskeys <percent>
点击系统保留使用的按键的操作(如点击Home键、返回键、音量调节键等)--pct-appswitch <percent>
启动Activity的操作(执行startActivity()方法)--pct-anyevent <percent>
不常用的设备上的按钮-
例子:
-
adb shell monkey -p com.xueqiu.android -v --pct-nav 20 500
,导航事件占20%
-
Monkey并行脚本
- 获取设备:
adb devices
- 指定设备:
adb -s 设备名
- 指定设备运行monkey:
adb -s 设备名 shell monkey -v 200
- 提取设备名并存到变量中:
adb devices | grep - | awk '{print $1}'
- 遍历每个设备进行操作
- 后台并行执行:{ nohup 命令 & }
#!/bin/bash
devices=`adb devices | grep - | awk '{print $1}'`
for device in $devices; do
{ nohup adb -s $device shell monkey -p com.xueqiu.android -v -s 20 --throttle 300 --pct-touch 30 --pct-nav 40 200 & }
done
2、maxim(Monkey优化版)
将项目clone到本地
项目地址:
将两个文件推到手机中
adb push framework.jar /sdcard
adb push 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 6 -v -v
cmd 命令 :
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 -v -v
tv.panda.test.monkey.Monkey
: monkey入口类,不要修改com.panda.videoliveplatform
: 被测app包名,需要修改--uiautomatormix
: 遍历策略
Tips:Android手机为什么可以执行java命令运行.jar文件?因为Android的底层是Linux改装过来的
3、AppCrawler
环境要求
- appcrawler 2.5
- java8 appium 1.8.x安装方法
- 直接下载
- 从源代码编译
- 备注
java -jar appcrawler-2.4.0-jar-with-dependencies.jar
- 地址:https://github.com/seveniruby/AppCrawler
Tips:具体操作可看前面章节