目录
一.Monkey简介
Monkey
用于测试
APP
的稳定性,通过给指定的
APP
发送一系列随机操作,看
APP
处理
时,时否会出现崩溃、闪退、错误、异常等各种现象,从而评判
APP
的稳定性如何
二.环境准备
1.
安装
Java
的
JDK
,并配置环境变量
配置环境变量如下:
先在环境变量中新建
JAVA_HOME
的环境变量
然后在环境变量中找到 Path 环境变量,编辑 Path 环境变量,添加如下内
容:%JAVA_HOME%\bin; 配置完成后,打开 DOS 窗口,输入 java 检查是否配置成功
2.配置 SDK 的环境变量
先找到如下路径:D:\Tools_V9.8\F.APP 测试工具\Monkey,找到 SDK 的包,进行解压
然后配置环境变量,在 Path 环境变量中配置的内容如下:D:\Tools_V9.8\F.APP 测试工具
\Monkey\android-sdk-windows\platform-tools;D:\Tools_V9.8\F.APP 测试工具
\Monkey\android-sdk-windows\tools; 配置完成后打开 DOS 窗口输入 adb 检查
3.安装夜神模拟器(如何用真机,不需要安装,但是真机要与 monkey 在同一个局域网)
, 默认安装即可
三.Monkey 的使用
1.打开夜神模拟器
2.Monkey 链接设备
使用如下命令:
adb connect 127.0.0.1:62001
3.查看包名
为什么要查看:因为指定要测试的 APP 的时候,需要指定包名。
如何查看:先在已经链接设备的 DOS 窗口中,输入:
adb shell
,进入到了 adb 的命令行
模式
然后:在命令行模式下输入:
logcat | grep START
在出现的一系列内容后面,按几下回车键(作用查找包名时,与前面启动的程序分开,便
于查看包名)
在设备中打开要测试的 APP,在命令行窗口中会出现打开的 APP 的包名,具体如下:
找到包名后,将包名复制出来,复制的步骤如下:
先鼠标右键,选择“标记”,然后选中你要复制的内容,在鼠标右键一下,然后在任何一个
文本内容 CTRL+V,粘贴你复制的内容:com.ss.android.article.lite
4.monkey 测试的命令
adb shell monkey -p com.ss.android.article.lite -s 8888 -v -v --pct-touch 40 --pct-
motion 25 --pct-appswitch 10 --ignore-crashes --ignore-timeouts --ignore-
security-exceptions --throttle 200 200 >D:\wangke\log\logmonkey.txt
5.命令拆解
adb shell monkey:把猴子放到手机里面去
-p 包名 :指定你要测试的 APP
-s 8888 : 给这次 monkey 测试所产生的随机事件流起一个别名,别名为 8888,便于后续
重现问题
-v:用于指定事件日志的打印级别,最低不带-v,不打印
-v:打印最原始的日志
-v -v :打印相对完整的日志
-v -v -v :打印最全的日志内容
--pct:用于指定随机事件的百分占比
主要的随机事件有 11 大随机事件,分别为:
1.触摸事件:--pct-touch
2.手势事件:--pct-motion
3.二指缩放事件:--pct-pinchzoom
4.轨迹事件:--pct-trackball
5.屏幕旋转事件:--pct-rotation
6.基本导航事件:--pct-nav
7.主要导航事件:--pct-majornav
8.系统按键事件:--pct-syskeys
9.启动 Activity 事件:--pct-appswitch
10.键盘事件:--pct-flip
11.其他类型事件:--pct-anyevent
--ignore-crashes
:忽略崩溃,当事件产生崩溃场景时,直接忽略掉,并记录到日志,
继续发送其它的随机事件,使整个测试任务能继续执行
--ignore-timeouts
:忽略超时,当事件产生超时场景时,直接忽略掉,并记录到日志,
继续发送其它的随机事件,使整个测试任务能继续执行
--ignore-security-exceptions
:忽略权限导致的异常,当事件产生权限不足的场景时,
直接忽略掉,并记录到日志,继续发送其它的随机事件,使整个测试任务能继续执行
--throttle 200
:思考时间 200 毫秒,目的使测试尽量的符合真实用户的实际操作行为,
规定每次事件执行的时间间隔
200:总共执行的随机事件次数
>:重定向日志内容到指定的文件
总结一下命令的写法:
adb shell monkey
-p 包名
-s 随机事件流的别名
日志打印的级别 指定随机事件的
类型占比 忽略各种异常 指定思考时间 给定随机事件执行的次数 日志重定向
adb shell monkey 200:在手机里面执行 200 次随机事件
adb shell monkey -v 200:在手机里面执行 200 次随机事件,并打印最简单的日志
adb shell monkey -p com.ss.android.article.lite -v -v 200:在执行前,请在手机上打
开对应的 APP,如果不打开,命令打开时,可能会有缓冲,影响命令执行
adb shell monkey -p com.ss.android.article.lite --pct-touch 60 --pct-
motion
20 --
pct-rotation 10 -v -v 200 :增加执行随机事件占比
adb shell monkey -p com.ss.android.article.lite --pct-touch 60 --pct-motion 20 --pct-rotation 10
--ignore-crashes --ignore-timeouts --ignore-security-exceptions -v -v 200
:增加忽略各种异常
adb shell monkey -p com.ss.android.article.lite --pct-touch 60 --pct-motion 20 --pct-rotation 10
--ignore-crashes --ignore-timeouts --ignore-security-exceptions --throttle 200 -v -v 200 :
增加思
考时间
adb shell monkey -p com.ss.android.article.lite --pct-touch 60 --pct-motion 20 --pct-rotation 10
--ignore-crashes --ignore-timeouts --ignore-security-exceptions --throttle 200 -v -v 200 >
D:\wangke\log\test_monkey.txt :
增加日志重定向
adb shell monkey -p com.ss.android.article.lite -s 6666 --pct-touch 60 --pct-motion 20 --pct
rotation 10 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --throttle 200 -v -v
200 > D:\wangke\log\test_monkey.txt
:
增加事件流别名
6666
6.日志分析
(在重定向的日志中搜索下面的关键字,未搜索到说明稳定性较好)
anr:响应无应答
crash:崩溃
exception:异常
error:错误
fail:失败