您的位置:首页 > 移动开发 > Android开发

Monkey详解(入门篇)

2017-08-21 23:42 190 查看

(一)什么是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的其他指令类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息