目录

一.Monkey简介

二.环境准备

三.Monkey 的使用

4.monkey 测试的命令

5.命令拆解

总结一下命令的写法:

6.日志分析


.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:失败
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐