1.安装成功后的验证命令,查看monkey版本

adb  version

2.查看连接设备命令

adb devices

3.列出手机里面全部安装的包的名称

adb shell pm list packages

4.安装软件

adb install package

5.卸载软件

adb uninstall packages

6.Monkey给手机百度这个app做随机1000个事件

adb shell monkey -p packages 1000

7.通过Monkey高级参数中throttle来设置执行的速度,throttle后面跟着的1000表示毫秒,100才表示随机事件次数

adb shell monkey -p packages --throttle 1000 100

8.seed参数,执行了两次同样的命令,参数-s 就表示seed,100表示seed的值,seed会根据这个值去生成随机事件序列,后面的50代表随机事件次数

adb shell monkey -p packages  -s 100 50

9.1点击事件touch,只做100%的touch事件,下面的100表示百分比,1000表示随机事件次数

adb shell monkey -p packages --pct-touch 100 1000

9.2通过添加-v参数,可以看到详细的信息

adb shell monkey  -v -p packages --pct-touch 100 1000

0表示touch事件,0到11表示不同事件类型,例如有旋转事件,轨迹球事件等等
monkey常见的命令

9.3不设置百分比

adb shell monkey  -v -p packages --pct-touch  1000

10 motion事件,不同手势的动作事件

adb shell monkey  -v -p packages --pct-touch 50 --pct-motion 20 100

数字1表示motion事件,即手势事件
monkey常见的命令
数字2 pinchzoom事件

这个叫二指缩放事件,你自己用两个手指头笔画一下就理解。例如我们在阅读电子书籍,可能用到这个动作。

adb shell monkey  -v -p packages --pct-touch 50 10 --pct-pinchzoom 20 100

数字3 trackball 事件

中文名字叫轨迹球事件,效果有点像你下拉刷新新闻列表的效果。下面数字3表示轨迹球事件

数字4 屏幕旋转事件(rotation)

屏幕旋转,主要有横屏和竖屏

数字5 permission事件

暂时没有相关资料介绍这个事件。

数字6 基本导航事件nav

基本导航事件:设备的上 下 左 右四个方向的导航操作。下面的数字6表示基本导航事件。

数字7 主导航事件majornav

设置主要导航事件,例如app的中间键,返回键,菜单按键,应该很多app底部都有三到四个按钮,例如首页,发现,我的这样的底部菜单。数字7表示主导航事件。

数字 8 系统导航事件syskeys

系统导航事件,主要是硬件设备的Home键,返回键和拨号键和音量键。数字8的类型表示系统导航事件

数字9 切换Activity事件

我们知道app里有多个Activity,我们切换到不同Activity事件,可以设置这样事件的百分比,数字9表示启动Activity事件。

数字10 flip事件

指的是键盘轻弹,点击文本框,键盘弹起,点击其他区域,键盘收起。

数字11 其他事件百分比设置anyevent

其他事件是指除了上面介绍的事件。因为不知道划分在那种事件,就放在其他事件这个分类。数字11表示其他事件。

11.Monkey高级参数之忽略崩溃和超时

1.1.–ignore-crashes 忽略崩溃和异常

adb shell monkey  -v -p packages --pct-touch 80  --ignore-crashes 1000

2.–ignore-timeouts 忽略超时

adb shell monkey  -v -p packages --pct-touch 80  --ignore-timeouts 1000

3.当然两个参数也可以一起使用

adb shell monkey  -v -p packages --pct-touch 80  --ignore-crashes  --ignore-timeouts 1000

我们知道Monkey是android中app的稳定性测试工具,所以如果app不稳定,一般有两种报错。上面已经提到的崩溃(crash)或者叫异常,还有一种就是ANR,程序无响应。当我们用monkey测试,出现这样情况的时候,我们一般需要去指定路径去导出crash log文件,交给开发去查看根本原因。

相关文章: