monkey命令使用:
adb shell monkey -p com.hoomsun.hxb(包名) --throttle 100 --ignore-crashes(忽略崩溃可设置) --ignore-timeouts (忽略超时可设置)--ignore-security-exceptions(索引越界) --ignore-native-crashes --monitor-native-crashes -v -v -v 10000>monkeysss.txt
查看monkey日志位置:C-用户-用户-monkeysss.txt,可从中查看日志报错,主要可遍历项目,查看是否有崩溃问题
搜索错误日志关键字::
crash,exception,NULLPointEXception,EXception
抓包命令:
adb logcat -v time >124.txt
monkey测试
一、理解monkey测试
1、Monkey测试是Android自动化测试的一种手段。Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。
2、当Monkey程序在模拟器或真实设备运行的时候,程序会产生一定数量或一定时间内的随机模拟用户操作的事件, 如点击,按键,手势等, 以及一些系统级别的事件。通常也称随机测试或者稳定性测试。
二、查看设备连接、包名、和入口Activity
1、进入cmd查看设备连接状态:
adb devices
2、查看包名、和入口Activity
进入cd D:\Program Files\adt-bundle-windows-x86_64-20130917\sdk\build-tools\android-4.3
目录下执行下条命令
aapt dump badging apk安装包绝对路径
三、运行monkey测试
//不间断操作500次
adb shell monkey -p 包名 -v 500
//每个操作间隔500ms,共执行100次
adb shell monkey -p 包名 -v-v --throttle 500 100
//每个操作间隔100ms,共执行1000次 ,其中点击事件占比50%,轨迹50%
adb shell monkey -p 包名 -v-v --pct-touch 50 --pct-trackball 50 --throttle 100 1000
//日志重定向到桌面文件夹
adb shell monkey -p 包名 -v-v --pct-touch 50 --pct-trackball 50 --throttle 100 1000 >C:\Users\xyp\Desktop\Android脚本\1.log
//每个操作间隔500ms、崩溃、超时、许可错误继续执行
adb shell monkey -p 包名 --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v-v-v 1000000>C:\Users\xyp\Desktop\Android脚本\1.log
四、停止monkey测试
重新打开一个cmd窗口
进入adb shell
ps | grep monkey //查找monkey进程
kill 进程号 //结束monkey
五、结果分析
得到Monkey测试的log之后,我们可以通过几个关键词来判断测试是否通过。
1、Monkey finished
用记事本打开LOG,查看log的最下端,是否有类似以下字段:
## Network stats: elapsed time=3799ms (3799ms mobile, 0ms wifi, 0ms not connected)
// Monkey finished
这个字段表明本次的Monkey测试通过,没有异常
2、CRASH
同样,在得到LOG后,搜索”CRASH”字段,如果搜索到有结果,则表明,在测试过程中,测试对象出现了报错现象,因此测试失败。
// CRASH: com.onekchi.downloadmanager (pid 12919)
3、NOT RESPONDING
在log中搜素该字段,如果有搜索有结果,则表示测试过程中,测试对象出现了进程无响应的现象,因此测试失败。
4、无法搜索到上述信息
出现这种情况,一般都是外界原因而非程序本身原因。比如测试过程中,电脑断电关机。或者测试过程中内存不足等等,结果作废,需要重新测试。
六、monkey说明
--throttle 时间间隔
--ignore-crashes 忽略崩溃
--ignore-timeouts 忽略超时
--ignore-security-exceptions 忽略许可错误
--ignore-native-crashes 忽略本地崩溃
--monitor-native-crashes 监控本地崩溃
--pct-touch 触摸、点击
--pct-motion 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)
--pct-trackball 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)
--pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
--pct-majornav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
--pct-syskeys 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
--pct-appswitch 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
--pct-flip 调整“键盘翻转”事件的百分比。
--pct-anyevent 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等
注意:各事件类型的百分比总数不能超过100%。