adb与monkey,轻松入门实践

2、Monkey 命令 基本参数的介绍

注意:所有的参数都需要放在monkey和设置的次数之间,参数的顺序可以调整;若带了-p ,-p必须放在monkey之后,参数必须在-p和count之间
-p ,此命令用于指定包,若不指定则在整个系统中执行
示例:
指定一个包执行10次:adb shell monkey -p 包名 10
指定多个包执行10次:adb shell monkey -p 包名  –p 包名  10  
-v ,用于反馈日志的详细程度级别 
Level 0 : adb shell monkey -p 包名 -v 10  // 默认级别,仅提供启动、测试完成和最终结果等少量信息   
Level 1 : adb shell monkey -p 包名 -v  -v 10  // 提供较为详细的日志,包括每个发送到Activity的事件信息
Level 2 : adb shell monkey -p 包名 -v  -v  -v 10  // 提供最详细的日志,包括了测试中选中/未选中的Activity信息
-s ,用于指定伪随机数生成器的seed值 
命令:adb shell monkey -p 包名 –s seed值 执行次数
如果seed值相同,则两次Monkey测试所产生的事件序列也相同的
--throttle ,用于指定用户事件的操作间隔时延,单位是毫秒  
如果不指定这个参数,monkey会尽可能快的生成和发送消息
命令:adb shell monkey -p 包名 --throttle 3000 100 
--ignore-timeouts ,忽略超时错误
--ignore-crashes ,忽略crash
--ignore-security-exceptions  忽略许可错误
--monitor-native-crashes,用于指定是否监视并报告应用程序发生崩溃的本地代码
--pct-touch ,触摸事件
示例:adb shell monkey -p 包名 -v -v -v --pct-touch 100 20   //执行20次100%都为触摸事件,这里触摸事件为100%,则没有其他事件

3、monkey指定日志存放目录

命令:adb shell monkey -p 包名 -v -v -v 200 [0]>[存放路径] [&]
0 :标准输入
1 :标准输出
2 :标准错误输出
& :后台运行
> :重定向,会覆盖原来文件里的内容
>> :重定向,追加到原来文件末尾
示例:monkey -p
com.haiyisoft.xjtfzsyyt --pct-touch 25 -v -v 200 1>/mnt/sdcard/monkey.txt 2>/mnt/sdcard/error.txt &

monkey指定日志存放目录

4、跑白名单命令
monkey --pkg-whitelist-file /mnt/sdcard/whitelist.txt --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 200000 >/mnt/sdcard/Stability_base.txt
5、跑黑名单命令
monkey --pkg-blacklist-file /mnt/sdcard/blacklist.txt --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 200000 >/mnt/sdcard/Stability_base.txt
6、Monkey测试注意事项:
1)、避免monkey关闭手机网络,对测试造成影响(参见下面问题2解决办法)
2)、开启 安全设置 下的未知来源
3)、手机与电脑USB线连接
4)、若有有关于音频的模块,请插入耳机避免影响其他同事(猴子乱调声音,扰民)
5)、若测试信息模块时需要安装测试工具testwizard.apk,自动生成通话记录,短信(数量为10)
6)、若测试文件管理器需要在TF卡内存放有图片/音乐/apk/视频/txt这类文件
7)、测试图库是需要TF卡内存放100个图片及视频的,同样音乐和视频播放器也需要存放不少于50个片源
8)、测试电子邮件的需要新建两个以上的账户
9)、测试前运行一遍手机上方带有的首次提示的说明,如输入法,文件夹窗口,apk提示语等
10)、若测试时遇到问题想重新开始测试,必须拔掉USB线后重新连接键入adb指令重新开始。
Monkey测试log为标准MTK log,常见问题也是以下几种:Crash、NE、KE、ANR、Exception
问题1:在monkey测试时出现错误 can't create D:logadb.txt: Read-only file system
解决办法:不要进入设备的shell环境中,直接在命令行中执行monkey测试命令,只不过monkey命令前需要加上 adb shell
如:adb shell monkey -p com.haiyisoft.xjtfzsyyt -v -v -v 20000 1> D:logadb.txt &
问题2:Monkey测试 会下拉状态栏,关闭WiFi,打开GPS,打开蓝牙,打开飞行模式等一系列操作,严重干扰程序的测试,尤其是对网络状态下的耗电量测试。
下面的命令可以禁止 Monkey测试下,手机操作状态栏。
adb shell settings put global policy_control immersive.full=*     //关闭手机的状态栏
adb shell settings put global policy_control null    //开启手机状态栏
然而 WiFi还是会被关闭,下拉滑动比较大时,还是会滑出状态栏。
解决办法是:monkey测试时,用命令控制,Monkey测试的比例,将 --pct-touch 比例设置为100%,就会自动禁止掉滑动操作,就不会拉出状态栏,关闭WiFi等。
8、中断monkey执行
可以新开cmd窗口,然后键入命令
adb shell
ps | grep monkey

中断monkey执行

上图中可以看到,有monkey进程在后台运行,id为17782,然后我们可以运行kill命令,来杀死该进程。执行如下命令:
kill pid(如上图中的17782)即可。
今天就到这里,等后续小酋再讲讲其高级应用和实战。

上一页12下一页


留言