Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。
当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去做相关的性能测试。
命令:$ adb shell monkey -v -p your.package.name 500
例如:monkey -v -p com.android.camera --throttle 5000 --pct-anyevent 100 500
-v显示默认程度的信息
-p com.android.camera是指定测试的程序(这是开始测试的camera的内容)
--throttle 5000设定延时
--pct-anyevent 100(设定启动activity的百分比为100%)
500设定的事件数
(具体可以看monkey的命令帮助)
以下是个例子: monkey -p com.example.android.notepad -v -v -v 10
运行结果相关解释如下:
各种事件所占的比例
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 15.0%
// 3: 25.0%
// 4: 15.0%
// 5: 2.0%
// 6: 2.0%
// 7: 1.0%
// 8: 15.0%
表示跳转到com.example.android.notepad里面的NotesList这一个Activity里
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
ory.LAUNCHER;launchFlags=0x10000000;component=com.example.android.notepad/.Notes
List;end
允许此Intent跳转
Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
tent.category.LAUNCHER] cmp=com.example.android.notepad/.NotesList } in package
com.example.android.notepad
发送的一些动作:
Sleeping for 0 milliseconds
:SendKey (ACTION_DOWN): 21 // KEYCODE_DPAD_LEFT
:SendKey (ACTION_UP): 21 // KEYCODE_DPAD_LEFT
Sleeping for 0 milliseconds
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
:Sending Pointer ACTION_MOVE x=-5.0 y=-4.0
:Sending Pointer ACTION_MOVE x=0.0 y=-1.0
:Sending Pointer ACTION_MOVE x=-3.0 y=2.0
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
:Sending Pointer ACTION_MOVE x=-2.0 y=4.0
:Sending Pointer ACTION_MOVE x=4.0 y=1.0
Events injected: 10
丢弃的,键=0,指针=0,轨迹球=0,翻转=0
:Dropped: keys=0 pointers=0 trackballs=0 flips=0
网络统计经过时间为7249ms,其中7249ms是用于在手机上的,0ms用于无线网络上,没有连接的时间为0ms
## Network stats: elapsed time=7249ms (7249ms mobile, 0ms wifi, 0ms not connecte
d)
结束// Monkey finished