(一)可以通过Python或是cmd进入DOS窗口进行命令输出.
- cmd进入DOS窗口,进行adb命令的执行(前提是提前安装adb,安装教程自行百度)
- 打开PyCharm,import os,利用os.system( )进行adb命令的执行
(二)在DOS窗口进行Monkey测试:
- 通过数据线连接手机和电脑,开启USB调试模式,打开开发者模式
- adb devices 检查设备是否存在
- adb shell "logcat | grep START" 获取包名(在输入命令后,点击需要测试的APP,在屏幕输出的最后一行的cmp=右边的就是app的包名。)
- 执行Monkey测试,输出指令:adb shell monkey -p com.xxxxxx.buyer -v -v -v -s 200 1000
- -p 后面可以指定测试某一个或是多个测试包
- -s 用于指定伪随机数生成器的seed值,如果seed值相同,则俩次Monkey测试所产生的 的事件序列也是相同的(就是seed值相同,俩次Monkey测试的操作事件的顺序也是相同的)
- -v 指定信息反馈的级别,-v,-v -v,-v -v -v三个级别,-v -v -v是*别,反馈的信息是最详细的,一般测试时选择*别.
- 200指的就是seed的序列可以任意设置不同的整数
- 1000指的就是设置的点击次数
(三)Monkey测试中常用的参数:
- --throttle (毫秒) 俩个事件操作间的延时操作时间
- --randomize-throttle 在事件间插入随机延时范围为0到throttle设置的时间 (例子:adb shell monkey -p com.d2cmall.buyer --thro-ttle 5000 randomize-throttle 100 1000)
- --ignore-crashes 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。
- --ignore-timeouts 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。
- --ignore-security-exceptions 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。
- --ignore-native-crashes 监视系统中本地代码发生的崩溃
- --monitor-native-crashes 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。
(四)Monkey调整百分比事件:
-
--pct-touch 调整点击事件的百分比(上下点击)
-
--pct-motion 调整移动事件的百分比(直线滑动)
-
--pct-pinchzoom 调整俩指缩放压缩手势的百分比,比如放大缩小手势操作
-
--pct-rotation 调整旋转事件的百分比(横屏竖屏)
-
--pct-nav 调整主要导航事件的百分比,例如中间键/菜单键/退回键
-
--pct-syskeys 调整"系统"按键事件的百分比,这些按键一般专供系统使用,如back/home/call/音量控制等
-
--pct-appswitch 调整app切换事件的百分比
-
--pct-flip 调整键盘唤出隐藏事件的百分比
- 例:adb shell monkey -p com.xxx.buyer -s 200 -v -v -v --pct-touch 100 1000 (注:百分比事件命令可以组合使用)
(五)monkey黑白名单:
-
创建白名单whitelist.txt,在名单内输入想要测试的包名
-
把文件推送到手机端的/data/local/tmp目录
-
推送命令:adb push whitelist.txt文件所在的路径 /data/local/tmp
-
执行这个文件,adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt 1000次
-
创建黑名单blacklist.txt,在名单内输入想要测试的包名
-
执行这个文件,adb shell monkey --pkg-blacklist-file /data/local/tmp/whitelist.txt 1000次
(六)把Monkey日志输出到指定文件:
- adb shell monkey -p com.xxxxxxl.buyer -v -v -v -s 200 1000 > /绝对路径+指定文件名
(七)终止Monkey测试的执行:
- 在dos窗口ctrl+c终止后,adb shell ps查询到monkey的进程,kill 进程号
- adb shell后再进行ps的进程查询可能会出现只显示shell内正在进行的进程而导致查询不到Monkey进程,adb shell ps显示的是手机内的所有进程
Monkey测试出现的异常的原因以及日志分析:
- 一般是由于以下两种原因导致的:
- Crash 程序崩溃(程序存在空指针/CPU内存不足/内存不足)
- ANR 程序无响应(CPU不足/内存不足/线程阻塞)
- 常见的测试结果分析方法-搜索关键字:(在日志中搜索“ANR”,在日志中搜索“CRASH”,在日志中搜索”Exception”)