打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
money命令详解
 
·monkey使用说明
 
·一、事件执行次数

adbshell monkey 1000

adbshell monkey -s 600 2000

adbshell monkey --throttle 500  3000

adbshell monkey --pct-touch10  4000

说明:以上命令行用红色标志的则是monkey测试中事件执行的次数,执行次数一般写在在命令行的结尾。

·二、monkey参数说明

adbshell monkey -p com.android.mms  -s 600--throttle 500 --pct-touch 10 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes-v -v -v 1000>/storage/sdcard0/1.log 2>&1 &

说明:以上命令行是由多个参数组成,下面详细的介绍每个参数用法

·1参数:-p

      参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

用法:-p包名

u指定一个包:

adb shell monkey -p com.android.mms100

说明:com.android.mms为信息的包名,100是事件计数。所以这条命令意思:对信息模块进行100次的伪随机事件测试

  

·
指定多个包:

adb shell monkey -p com.android.mobileqq –p com.android.mms -p com.prize.music100

说明:com.android.mobileqq为手机QQ包名;

           com.android.mms为手机信息的包名;

           com.prize.music 为手机音乐的包名

所以这命令行意思:对手机信息、手机QQ、音乐三个模块共进行100次的伪随机事件测试

u不指定包(即整个手机系统)

adb shell monkey 100

说明:对手机进行随机的100次事件测试(随机测试任意app

·

1.手机连接电脑,开启USB调试并且允许本台电脑对手机进行调试

 2. 手机进入需要获取包名的应用界面,例如要获取音乐的包名,则进入手机音乐界面

3.在cmd窗口(即电脑端点击运行--输入cmd--确定后弹出的窗口),输入以下命令行:

adb shell dumpsys window w |findstr \/ | findstr name=

4.此时窗口显示第一行命令就是当前运行的应用: mSurface=Surface(name=com.prize.music/com.prize.music.activities.MainActivity)

·
·2参数:-v

    用于指定反馈信息级别(即日志的详细程度,verbose简称),总共分3个级别,每增加一个-v都将增加反馈信息的详细级别。

uLevel 0 (默认值):仅提供启动提示、测试完成和最终结果等少量信息

   adb shell monkey -p com.android.mms-v100

uLevel1:提供较为详细的日志,如逐个发送到Activity的事件信息

 adb shell monkey -p com.android.mms-v-v100

uLevel2:最详细的日志,如测试中选中/未选中的Activity信息

adbshell monkey -p com.htc.Weather -v -v -v 100

·3参数:-s

    

 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

用法:-s数值

测试1:adbshell monkey -p com.android.mms –s 500 100

测试2:adbshell monkey -p com.android.mms –s 500 100

说明:对手机信息进行seed值为10,做100次的伪随机测试事件。两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的。

·4参数:--throttle

   用于指定用户操作(即事件)间的时延,而不是每进行一步测试的时间延迟,这里的每个事件是由多个步骤测试如点击、滑动等组成的

用法:--throttle毫秒数

示例:

adbshell monkey -p com.android.mms --throttle 3000100

说明:这里指的是对信息模块进行100次事件测试,每测完一次事件就暂停3000毫秒即3秒再执行下一次事件。

·5参数:--ignore-crashes

用于指定当应用程序崩溃时(Force&Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成,如果不使用此参数则遇到应用崩溃时monke测试就会停止。

示例1:

adbshell monkey -p com.android.mms --ignore-crashes1000

说明:测试过程中即使信息程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;

示例2:

adbshell monkey -p com.android.mms 1000

测试过程中,如果信息程序崩溃,Monkey将会停止运行

·6参数:--ignore-timeouts

用于指定当应用程序发生ANR(ApplicationNoResponding)超时无响应时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成,如果不使用此参数则monkey会停止测试。

示例1:

adbshell monkey -p com.android.mms --ignore-timeouts1000

说明:测试过程中即使信息出现无响应,Monkey依然会继续发送事件直到事件数目达到1000为止;

示例2:

adbshell monkey -p com.android.mms 1000

测试过程中,如果信息出现无响应,Monkey将会停止运行

·7参数:--ignore-security-exceptions

用于指定当应用程序发生许可错误(如启动一个需要某些许可时)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。用法与--ignore-timeouts、--ignore-crashes一致。

示例1:

adbshell monkey -p com.android.mms --ignore-security-exceptions1000

说明:测试过程中即使信息出现需要许可证,Monkey依然会继续发送事件直到事件数目达到1000为止;

示例2:

adbshell monkey -p com.android.mms 1000

测试过程中,如果信息出现需要许可证,Monkey将会停止运行

·8参数:  --kill-process-after-error

用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

·9参数:--monitor-native-crashes

用于指定是否监视并报告应用程序发生崩溃的本地代码。

·10、参数:--pct

    用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

u--pct-touch {+百分比}

调整触摸事件(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)的百分比为10%

 adb shell monkey -p com.android.mms --pct-touch101000

说明:对信息模块进行1000次伪随机事件测试,其中触摸事件占10%


·
--pct-motion {+百分比}

调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)

 adb shell monkey -p com.android.mms --pct-motion201000

--pct-trackball {+百分比}

调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

adbshell monkey -p com.android.mms --pct-trackball301000

·
--pct-nav {+百分比}

调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

adbshell monkey -p com.android.mms --pct-nav401000

--pct-majornav {+百分比}

调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

adbshell monkey -p com.android.mmsr --pct-majornav 50 1000

u
·
--pct-syskeys {+百分比}

调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、StartCall、End Call及音量控制键)

adbshell monkey -p com.android.mms --pct-syskeys 601000

--pct-appswitch {+百分比}

调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

adbshell monkey -p com.android.mms --pct-appswitch 70100

·

--pct-anyevent {+百分比}

调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

adbshell monkey -p com.android.mms --pct-anyevent 1001000

指定多个类型事件的百分比:

uadb shell monkey -p com.android.mms--pct-anyevent50 --pct-appswitch 50 1000

注意:各事件类型的百分比总数不能超过100%

·11、黑白名单

Monkey的APK应用集合分为黑名单和白名单,黑名单是指系统不会执行黑名单中以内的apk;白名单则是只执行在白名单中的apk。

黑名单--pkg-blacklist-file

设置方法:

1.新建一个txt文档,如命名为blacklist.txt(注:不得带有中文),在文档内输入不用测试的应用程序包名,如要测试信息模块,则将信息包名com.android.mms输入到txt中保存。如果多个应用程序不需要测试,则输入一个应用包名后回车键,再输入另外一个应用程序的包名

·黑名单txt文档格式如下:
·

2.将此txt文档放入手机存储任意文件夹下,可以复制粘贴到手机,另一种方法:在手机开启USB调试下,用以下命令行将文档复制到手机文件夹下:

adbpush  F:/blacklist.txt   /storage/sdcard0/

说明:将F盘下的blacklist.txt文件复制到手机存储根目录下   

3.此时使用命令行:

adbshell monkey --pkg-blacklist-file/storage/sdcard0/ blacklist.txt  -v -v --throttle 200 1000

说明:对手机进行monkey测试,但是backlight.txt文档内的应用程序不会被测试

·
白名单--pkg-whitelist-file

      白名单的设置方法和黑名单的设置方法基本一致,如命名白名单为whitelist.txt,使用命令:

adbshell monkey --pkg-whitelist-file/storage/sdcard0/ whitelist.txt -v -v --throttle 200 1000

说明:此时只对白名单内的应用程序做monkey测试

注意:1.黑白名单不可同时进行测试

           2.设置了黑白名单后 -p参数就不可再使用

·三、log输出

1.adbshell monkey 1000

2.adbshell monkey 1000>f:/2.txt

3.adbshell(输入后回车,再输入以下命令)

   monkey 1000>/storage/sdcard0/2.txt

说明:1.不保存log

           2.f盘新建一个txt文档,命名为2.txt,此时将log保存在该文档上

           3.在手机存储目录下新建一个txt文档,命名为2.txt,此时将log保存在该文档上

           

·
log输出文件命名

       可以保存后缀名为.txt的文档,也可以保存后缀名为.log的文件,命名的文件不可带有中文,一般命名为英文、数字。

示例:

1adb shell monkey 1000>1.txt

2adb shell monkey  1000>a.log

说明:1log输出到1.txt

           2log输出到a.log

·
log输出保存路径

一、log保存到电脑上。如果不设置保存路径则保存在cmd窗口显示的路径下,如C:\Users\Administrator

1adb shell monkey 1000>1.txt

说明:此时则在C:\Users\Administrator下生成一个名字为1txt文档,log保存在此文档上 

2adb shell monkey 1000>f:\3.txt

说明:在F盘新建一个名称为3txt文档,将log保存到该文档上

·

二、log保存到手机上

 cmd窗口先输入adb shell,回车键后输入命令行

monkey1000>/storage/sdcard0/h.log

说明:此时会在手机存储目录下生成一个h.log文件,会保存运行生成的log。由于实践过程中发现保存到手机上的log有时抓不到报错信息,所以一般会在命令行后面加上2>&1&

完整如下:

adbshell(此时回车键后,在输入以下命令行)

monkey1000>/storage/sdcard0/h.log 2>&1 &

·

总结

目前我们测试组常写的命令行:

 1、常用的参数:-p-v(一般使用level2,即-v -v -v) -s(一般500600)--throttle(一般为500ms)、--ignore-crashes

--ignore-timeouts--monitor-native-crashes。

2、跑monkey时一般保存log到手机上:

/storage/sdcard0/1.log  2>&1 &

3、上述提到的参数在命令行的输写顺序无要求,但是一般的话执行事件次数我们会放在命令行的结尾、log保存路径的前面.

·

引申

可能有时我们要测试某个模块要运行40W次,但是输入了4W次,此时可能会想到关机后再开机重新运行,这里有个不用关机再开机的笨方法:

1cmd窗口输入adb shell,接着按键盘的Enter

2cmd窗口继续输入:ps|grep monkey

3、此时cmd窗口会显示一行:

shell  数字1 数字2数字3。。。。

我们要的就是数字1

4、这个时候键盘同时按住ctrl+c键(即平常时用的复制键)

5、输入adb shell kill 数字1,此时即可停止monkey 运行

·
·
·

2.对两台手机的系统进行10000次伪随机事件测试,要求两台手机跑的不一致,log保存到手机上,遇到程序崩溃或无响应时会继续测试,不停止。

·
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android 常用 adb 命令总结|MQC云测平台
Android平台测试介绍及monkey使用
android压力测试命令monkey详解
【转】 Android 中Monkey的用法
ADB (Android debug bridge) 快速入门使用手册29
Android自动测试之Monkey工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服