monkey测试

参考:
【Android压力测试】monkey压力测试(很全、很详细)
monkey实战–测试步骤、常用参数、常规monkey命令
Android monkey 资料
Android Monkey 压力测试 介绍

命令

cmd 输入 adb shell monkey :

C:\Users\lenovo>adb shell monkey

[-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...] 
//所在测试的包,可以是一个也可以是多个 如 
// monkey -p com.androd.sms -p com.androd.explorer

[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
//activity必须至少包含一个指定的category,才能被启动,否则启动不了

[--ignore-crashes]  
//当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。
//如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
[--ignore-timeouts] 
//通常,当应用程序发生任何超时错误(如“Application Not  Responding”对话框)时, 
//Monkey将停止运行。
//如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
[--ignore-security-exceptions] 
//通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。
//如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。

[--monitor-native-crashes] //跟踪本地方法的崩溃问题
[--ignore-native-crashes] //忽略本地方法的崩溃
[--kill-process-after-error] //发生错误后直接杀掉进程
[--hprof] 
//设置此项,将在monkey事件序列之前和之后立即生成profilling报告。
//这将会在data/misc中生成大文件(约5mb)所以要小心使用它。

[--pct-touch PERCENT] //触摸事件 占比
[--pct-motion PERCENT]  //滑动事件
[--pct-trackball PERCENT] //轨迹球事件
[--pct-syskeys PERCENT] //系统按键事件 Home/Back/startCall/endCall/volumeControl
[--pct-nav PERCENT]  //导航事件 up/down/left/right
[--pct-majornav PERCENT] //主要导航事件 back key / menu key
[--pct-appswitch PERCENT] //activity之间的切换
[--pct-flip PERCENT]
[--pct-anyevent PERCENT] //任意事件
[--pct-pinchzoom PERCENT]
[--pct-permission PERCENT]

[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]

[--wait-dbg] 
[--dbg-no-events]
[--setup scriptfile] 
[-f scriptfile [-f scriptfile] ...]
[--port port]

[-s SEED] 
//指定产生随机事件种子值,相同的种子值产生相同的事件序列

[-v [-v] ...] 
//指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。-v -v -v 为最详细日志。

[--throttle MILLISEC] 
//每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)

[--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
COUNT //执行次数

在studio中的Terminal中执行命令

示例:

// > 表示 打印日志位置
adb shell monkey -p com.dch.dai --throttle 100 --pct-touch 50 
--pct-motion 50 -v -v 1000 >c:\Users\lenovo\Desktop\test.txt

注意:符号都是纯英文输入,否则 Error: Count is not a number错误

示例:

adb shell monkey -p your.package.name 
                --pct-touch 30 
                --ignore-crashes  
                --ignore-timeouts 
                --throttle 250 
                -s 2  
                -v -v -v 5000000
//触摸事件占30%,忽略crash和超时,每个事件间隔250ms,输出最详细日志,执行500万次

Monkey测试结果分析

Monkey测试的log分析,我们可以通过几个关键词来判断测试是否通过。

正常情况

如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间;
// Monkey finished 代表执行完成\

异常情况

Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug

Monkey 执行中断, 在log最后也能看到当前执行次数

1)Monkey finished

打开LOG,查看log的最下端,是否有类似以下字段:

## Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms not connected) 

// Monkey finished

这个字段表明本次的Monkey没有异常,测试通过。

2)CRASH

同样,在得到LOG后,搜索”CRASH”字段,如果搜索到有结果,则表明有进程出现问题,测试不通过。

// CRASH: com.onekchi.downloadmanager (pid 12919)

3)ANR

在Log中搜素该字段,如果有搜索有结果,则表示测试过程中,测试对象出现了无响应的现象,因此测试不通过。–throttle <毫秒>值建议为500

4)无法搜索到上述信息

出现这种情况,一般都是外界原因而非程序本身原因。比如电脑异常测试中断,需要重新测试。

你可能感兴趣的:(测试)