导航
导航
文章目录
  1. 命令格式
  2. 参数
  3. 分析
  4. 更多

monkey压力测试

入门级知识,不过长时间不用命令容易忘,简单做个记录

命令格式

1
adb shell monkey [-p 包名] [其他参数] [-v] 测试次数 [> /user/…/result.txt](注:‘> /user/…/result.txt’可将结果打印到文本中)

举例:

1
adb shell monkey -p com.variflight.highspeed -s 3000 --ignore-crashes --ignore-timeouts -vv 6000 > /Users/robinwang/Downloads/monkey.txt

此命令翻译为自然语言是:monkey作用于此包,产生时间序列的种子序列值定为3000,运行中忽略程序崩溃、超时,同时监视本地程序崩溃,日志的详细信息级别为二级,产生6000个点击事件,相关日志会保存在所写路径中,搜索关键字‘crash’或‘anr’即可查看发生错误的部分。

参数

monkey -help:可查看参数说明列表。参数选项有:
(1)-p 包名1 -p 包名2 … :指定一或多个待测试的包,若不指定则测试中可打开任意app;
(2)-v:指定打印日志的详细程度,有‘-v’,’-v -v’,’-v -v -v’三个级别;
(3)-s seed值:在测试中,虽然用户操作序列(每次操作按一定的顺序所组成的一系列操作)是随机生成的,但只要对同一个包指定相同的Seed值,就能使测试事件相同,可用于排错。所以也说这个操作序列是伪随机的。若不添加此参数,结果中会自动生成seed值;
(4)–-throttle 毫秒数:指定操作(即事件)间的时延,单位是毫秒;
(5)–-ignore-crashes:使得操作序列可以全部执行完,而不会在发生崩溃时就终止程序进程;
(6)–ignore-timeouts:使得操作序列可以全部执行完,而不会在发生ANR(Android Not Responding)时就终止程序进程;
(7)–-ignore-security-exceptions:使得操作序列可以全部执行完,而不会在发生许可错误时(如证书许可,网络许可等)时就终止程序进程;
(8)–-kill-process-after-error:使得当应用程序发生错误时停止运行并保持在当前状态,即仅是静止在发生错误时的状态,而不是结束该应用程序的进程;
(9)–-monitor-native-crashes:指定监视并报告应用程序发生崩溃的本地代码;
(10)–-pct-事件1 事件百分比1 -pct-事件2 事件百分比2 … :用于指定某类事件数目占总事件数目的百分比;
其中所指定事件参数选项可为:
-flip(点击事件)
-touch(触摸事件是一个down-up事件)
-motion(动作事件由一个down事件、一系列的伪随机事件和一个up事件组成)
-trackball(轨迹事件,在屏幕上进行随机拖动)
-nav(基本导航事件,如上下左右键)
-majornav(主要导航事件,通常引发图形界面中的动作)
-syskeys(系统按键事件指如系统按键Home、Back、Start Call、End Call及volumeControl)
-appswitch(启动activity事件)
-anyevent(其它类型事件)
注意,各事件类型的百分比总数不能超过100。

分析

一般我们可以一次发送5万次随机事件的请求,每个请求之间的间隔为150毫秒,测试大约会进行40min,完成以后就可以查看日志。
日志中可能的错误:

程序异常退出,uncausedexception (ctrl+f搜索‘Fatal’)
程序强制关闭,ForceClosed (简称FC) (同上)
程序无响应,ApplicationNo Response(ctrl+f搜索‘ANR ’,加空格是为了屏蔽掉一些无效信息)
手动生成。

更多

关于monkey压力测试,有同学了解的更多,想了解更详细可以查阅这篇文章Android压力测试快速入门教程

转载请指明出处RobinBlog:http://robinx.net/2019/03/11/monkey压力测试/