Android压力测试工具Monkey简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android压⼒测试⼯具Monkey简介
测试步骤:
1.安装ADB
2.连接被测⼿机和电脑
3.打开CMD命令⾏
4.输⼊monkey命令
adb shell monkey -p --pct-touch 30 --ignore-crashes --ignore-timeouts--throttle 250 -s 2 -v -v -v 5000000
⼀.monkey测试命令有哪些选项?
1:常⽤选项
--help:打印帮助信息
-v:指定打印信息的详细级别,⼀个 -v增加⼀个级别,默认级别为 0 。
-v -v -v 为最详细⽇志。
2:事件选项
-s:指定产⽣随机事件种⼦值,相同的种⼦值产⽣相同的事件序列。
如: -s 200
--throttle:每个事件结束后的间隔时间——降低系统的压⼒(如不指定,系统会尽快的发送事件序列)。
如:--throttle 100
--pct-touch:指定触摸事件的百分⽐,如:--pct-touch 5% ,相关的还有以下option:
--pct-motion <percent> (滑动事件)
--pct-trackball <percent> (轨迹球事件)
--pct-nav <percent> (导航事件 up/down/left/right)
--pct-majornav <percent> (主要导航事件 back key 、 menu key)
--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch <percent> (activity之间的切换)
--pct-anyevent <percent>(任意事件)
3:约束选项
-p:指定有效的package(如不指定,则对系统中所有package有效),⼀个-p 对应⼀个有效package,如:-p com.ckt -p com.ckt.asura;-c:activity必须⾄少包含⼀个指定的category,才能被启动,否则启动不了;
4:调试选项
--dbg-no-events:初始化启动的activity,但是不产⽣任何事件。
--hprof:指定该项后在事件序列发送前后会⽴即⽣成分析报告 —— ⼀般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发⽣错误后直接杀掉进程
--monitor-native-crashes:跟踪本地⽅法的崩溃问题
--wait-dbg:知道连接了调试器才执⾏monkey测试。
⼆.⼀个完整的monkey语句?
adb shell monkey -p --pct-touch 30 --ignore-crashes --ignore-timeouts--throttle 250 -s 2 -v -v -v 5000000
触摸事件占30%,忽略crash和超时,每个事件间隔250ms,输出最详细⽇志,执⾏500万次
三.如何保存不连着电脑跑monkey?
1.输⼊命令进⼊shell环境:adb shell
2.输⼊monkey语句执⾏:monkey –p com.android.mms –s 100 --throttle 1000 –v –v –v 15000 > /mnt/sdcard/monkey_test.txt&
四.如何跑多个apk的monkey?
⿊名单:执⾏除了⿊名单中以外的apk;⽩名单:只执⾏在⽩名单中的apk。
⿊名单的设置⽅法: a.创建⼀个名称为blacklist的txt⽂档,在⽂
件中输⼊应⽤程序的包名,如mms应⽤,则在⽂件中输⼊com.android.mms;如果有多个应⽤程序不想被执⾏,则在⽂件中添加多个包名,注意包名与包名之间均⽤回车键。
b.将blacklist.txt的⽂件导⼊到⼿机的/data⽬录下,然后在执⾏monkey测试的时候使⽤--pkg-blacklist-file 参数再加上blacklist⽂件的存储路径,其他的参数设置则和测试单⼀apk没有区别。
⽩名单的设置⽅法:⽩名单的设置⽅法和⿊名单的设置⽅法基本⼀致,只是在创建txt⽂档的时候,⽂件的命令应为whitelist。
在执⾏monkey的时候,只执⾏⽩名单中的应⽤。
例⼦: monkey –pkg-blacklist-file /data/blacklist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执⾏次数>
C:\blacklist_test.txt //执⾏⿊名单以外的应⽤ monkey –pkg-whitelist-file /data/whitelist.txt -c <options> -s <seed> <限制语句> --throttle
<milliseconds> -v 执⾏次数 > C:\whitelist_test.txt //执⾏⽩名单的应⽤
五.如何关闭mokey?
1. ps命令查找uiautomator的进程
cmd命令⾏窗⼝输⼊:
(linux)adb shell ps | grep monkey
(windows)adb shell ps | findstr monkey
返回来的第⼀个数字,即是monkey的进程号
2.kill 命令结束进程
继续输⼊: adb shell kill [刚才查到的进程号]
六.如何分析monkey⽇志?
1、 ANR问题:在⽇志中搜索“ANR”
2、崩溃问题:在⽇志中搜索“CRASH”
七.如何重现BUG?
1、找到是monkey⾥⾯的哪个地⽅出错
2、查看Monkey⾥⾯出错前的⼀些事件动作,并⼿动执⾏该动作
3、若以上步骤还不能找出,可以使⽤之前执⾏的monkey命令再执⾏⼀遍,注意seed值要⼀样
⼋.monke的测试策略?
单个apk的验收测试时,使⽤单⼀apk且不忽略异常的命令执⾏
单个apk的解决问题的测试时,使⽤单⼀apk且忽略异常的命令执⾏。
这样可以在⼀次执⾏的过程中发现应⽤程序中的多个问题。
单个apk的应⽤程序的压⼒/健壮性测试时,主要缩短monkey测试中事件与事件之间的延迟时间,验证在快速的事件响应的过程中,程序是否能正常运⾏。
将--throttle的值设定为500或者更⼩,⼀般都使⽤500毫秒的延迟事件。
在进⾏apk的集合测试(测试对象为多个APP,⼿机测试?)时,对于⾼频率使⽤的apk、长时间使⽤的apk都要包含在执⾏的应⽤程序中间。
APK分类具体:
⾼频率使⽤的apk如:Phone、Contacts、Message、Settings、File Manager、Gallery、Input Method
长时间使⽤的apk如:Phone、Browser、Music player、Camera、Video player、Email、Chat
其他的apk如:Calendar、Notepad、Calculator、FM Radio、<u style="box-sizing: border-box; outline: 0px; word-break: break-all;">Google</u> Search
九.想不随机跑moneky,指定脚本跑monkey?。