(一)什么是Monkey,Monkey的用途
Monkey是android测试工具。它通过向模拟器或者手机,发送伪随机事件流,来测试程序的健壮性,实现压力测试。
(二)Monkey在哪儿,如何运行
Monkey位于设备的system\bin下。
直接输入adb shell monkey,或在adb shell之后再次输入monkey。都可触发monkey help.
(三)Monkey的指令分类。
Monkey指令可分为四类:辅助类指令,事件类指令,限制性指令,调试类指令。
辅助类指令,例如-h,-v.
事件类指令,功能包括
(1)控制发生事件的百分比,次数,事件间隔。
(2)执行脚本指令,控制脚本指令的执行次数。
(3)控制随机事件次数,重复某批次随机事件。
限制性指令,可以将随机事件控制在某个(或多个)包或类内。
调试类指令,可忽略某些事件(例如,崩溃,无响应等),保证随机测试的连续性。
(四)简单实例
发送1000次随机事件
输入指令:adb shell monkey 1000
效果如图:
(五)辅助类指令
-h:傻子都知道是干嘛的。
-v:为Log输出等级。每多一个-v,输出Log约详细。最多可有三个-v.
我们以随机发送10个事件为例,比较一下Log的详细等级。
输入指令:adb shell monkey 10
响应信息如下:
C:\Users\XXXX>adb shell monkey 10
// activityResuming(com.huawei.android.remotecontroller)
Events injected: 10
## Network stats: elapsed time=413ms (0ms mobile, 0ms wifi, 413ms not connected)
C:\Users\XXXX>
输入指令:adb shell monkey -v 10
响应信息如下:
C:\Users\XXXX>adb shell monkey -v 10
:Monkey: seed=1503502877295 count=10
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 2.0%
// 3: 15.0%
// 4: -0.0%
// 5: -0.0%
// 6: 25.0%
// 7: 15.0%
// 8: 2.0%
// 9: 2.0%
// 10: 1.0%
// 11: 13.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10200000;component=com.android.soundrecorder/.SoundRe
corder;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=com.android.soundrecorder/.SoundRecorder } in packag
e com.android.soundrecorder
:Sending Touch (ACTION_DOWN): 0:(355.0,1498.0)
:Sending Touch (ACTION_UP): 0:(350.61884,1499.2844)
// Allowing start of Intent { cmp=com.android.soundrecorder/.RecordListActiv
ity } in package com.android.soundrecorder
Events injected: 10
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=623ms (0ms mobile, 0ms wifi, 623ms not connected)
// Monkey finished
C:\Users\XXXX>
若输入指令:adb shell monkey -v -v 10或 adb shell monkey -v -v -v 10
响应信息更加详细,这里不再啰嗦。
之后,再来总结monkey的其他指令类型。