Monkey测试环境搭建及测试执行

一、环境准备
1、JDK
2、Android SDK
二、JAVA环境的搭建
1、JDK 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
2、JDK 配置环境变量,此处就不多叙述了,不会的可以查看小编以前写的关于JDK环境变量配置的教程。
链接地址:https://www.jianshu.com/p/ee18a69e137d
三、Android SDK环境
1、下载Android SDK(最新版)
下载地址:http://tools.android-studio.org/index.php/sdk/
2、下载.exeg格式和zip格式均可,小编下载的是zip格式:android-sdk_r24.4.1-windows.zip

image.png

3、下载完成以后解压Android SDK文件,里面有两个应用程序: “SDK Manager.exe”(负责下载或更新SDK包) 和 "AVD Manager.exe"(负责创建管理虚拟机),如图所示:
image.png

4、运行“SDK Manager.exe”进行SDK下载,选择自己想安装的 Android 版本,然后点击“Install X packages”安装,如图所示:
image.png

5、在新出现的界面上,选择接受并遵守所有许可内容(Accept All),再点击 “Install”
image.png

6、进入漫长等待时间,这个时间可以干点别的,比如看看电影,撸一把游戏等等!!!
image.png

7、安装好后,在 Android SDK 管理器界面上你所选的包后面会显示“Installed”,表示已经安装好了。
image.png

8、安装完之后,先设置Android的环境变量,新建ANDROID_HOME环境变量,变量值为sdk路径
image.png

9、配置SDK下的tools与platform-tools的环境变量,在Path中添加 %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
image.png

10、验证环境是否安装成功,出现如下图表示成功
image.png

四、启动Monkey测试环境,执行测试
1、注意:启动Monkey测试环境必须要先启动Android虚拟机或者连接上真机。
2、此处,小编是以真机为例进行Monkey测试。
3、将手机连上电脑—打开开发者模式—开启USB调试模式(电脑必须装有手机的驱动)
4、查看测试手机连接是否正常,“win+R”输入cmd进入黑窗口输入adb devices显示设备号即连接正常
image.png

5、输入adb shell命令,如图所示表示进入成功
image.png

6、执行APP测试,包名可以通过shell命令获取或者可以直接找开发要,命令如下:执行前先进入shell中

pm list packages       #列出设备所有包
pm list packages com.xxx   #查找所有包含com.xxx的包
pm list packages com.xxx.zz  #查找指定包是否存在
pm list packages -d    #输出禁用的包。
pm list packages -e    #输出启用的包。
pm list packages -s    #输出系统的包。
pm list packages -i    #输出包和安装信息
pm list packages -u    #输出包和未安装包信息
pm list packages -f    #输出包和包相关联的文件
pm list packages -3    #输出所有第三方包
pm list packages --user <user_id> #根据用户id查询用户设备所有包,user_id指连接的设备,顺序从零开始

备注:如果没有进入shell中,以上命令前加adb shell 如:adb shell pm list packages

所有包.png

指定包.png

user_id包.png

一个测试机.png

备注:命令有很多就不在此一一列举,可自行百度进行查找。
7、对指定包进行测试命令如下
monkey -p 包名 点击次数(随机操作) monkey -p com.xxxx 1000
image.png

8、Monkey测试完成,看见Monkey finished 表明本次的Monkey没有异常,测试通过。如图所示:
image.png

9、带有日志等级执行命令:monkey -p your.package.name -v -v -v 1000 如图所示:
image.png

10、日志输出adb shell monkey -p 包名 -v -v 100 >F:\monkey_log.txt
image.png

11、执行完以后会在相应的F盘下生成monkey_log.txt
image.png

12、打开日志,查看日志信息
image.png

备注:日志导出之前先不要进shell,进入adb shell后就相当于进入linux的root下面,没有权限在里面创建文件,切记、切记、切记,重要事情说三遍!!!

五、Monkey参数

1、adb shell monkey -p com.xxx.zz --throttle 500 -v -v -v 1000 > F:/monkey_log.txt

adb shell : 是进入shell 也可和后面的语句分开写 
-p : 参数是指定一个包或多个,两个再 -p 包名
throttle 500 : 响应时间,500毫秒
 -v -v -v : 三级详细信息 ,
1000 : 执行的操作量 
F:/monkey_log.txt :将结果日志存储到F盘下面取名为monkey_log.txt

2、-help 查看所有命令

3、-p说明:
   参数-p用于约束限制,用此参数指定一个或多个包(Package)。指定
   包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有 
   APP。
   指定一个包: adb shell monkey -p com.xxx.zz  -v 100
   指定多个包: adb shell monkey -p com.xxx.zz  -p com.yyy.nn  -v 100

4、-v说明:日志输出的详细程度
   -v:只提供启动、测试完成和最终结果等较少的信息。即一级日志信息
   -v -v :提供了较为详细的测试信息,包括每个发送到Activity的事件信息。即二级日志信息
   -v -v -v :提供了更多的详细信息,测试中选中或未选中的Activity信息。即三级日志信息

5、-s说明:伪随机数生成器的seed值,Monkey测试是随机的,加一个seed值(所以是伪随机),方便复现问题。
   如果用相同的seed值再次运行Monkey,它将生成相同的事件序列
   adb shell monkey -s com.xxx.zz -v 500
   adb shell monkey -p com.xxx.zz –s 10 1000

6、--throttle说明:用户事件间隔时间,单位是毫秒
   adb shell monkey -p com.xxx.zz  --throttle 500 1000

7、--ignore-crashes说明:当应用程序崩溃时,Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
   adb shell monkey -p com.xxx.zz --ignore-crashes 10000     程序出现崩溃不会停止,直到时间完成
    adb shell monkey -p com.xxx.zz  -v 10000      程序出现崩溃会停止

8、--ignore-timeouts说明:应用程序发生任何超时错误(如“Application Not responding”)Monkey是否停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
   adb shell monkey -p com.xxx.zz --ignore-timeouts 10000

9、--ignore-security-exception说明:用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。设置此项,应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
   adb shellmonkey -p com.xxx.zz --ignore-security-exception 1000

10、--kill-process-after-error说明:遇到错误时,应用程序停止运行并保持在当前状态

11、停止:adb shell “ps |grep monkey”  记住第二个字段(m)   adb shell kill  m
        或者adb shell "pid=`ps | grep monkey | awk '{print $2}'` && kill $pid"

12、--pct- {+事件类别}{+事件类别百分比}  注意:各事件类型的百分比总数不能超过100%
    --pct-touch <percent> 说明:调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置;
    adb shell monkey -p com.xxx.zz --pct-touch 10 1000

    --pct-motion <percent>说明:调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成);
    adb shell monkey -p com.xxx.zz --pct-motion 20 1000

    --pct-trackball <percent>说明:调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击);
    adb shell monkey -p com.xxx.zz --pct-trackball 30 1000

    --pct-nav <percent>说明:调整“基本”导航事件的百分比(导航事件由来自方向输入设备up/down/left/right组成);
    adb shell monkey -p com.xxx.zz --pct-nav 40 1000

    --pct-majornav <percent>说明: 引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键;
    adb shell monkey -p com.xxx.zz --pct-majornav 50 1000

    --pct-syskeys <percent>说明:调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键);
    adb shell monkey -p com.xxx.zz --pct-syskeys 60 1000

    --pct-appswitch <percent>说明:在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法;
    adb shell monkey -p com.xxx.zz --pct-appswitch 70 1000

    --pct-anyevent <percent>说明:调整其它类型事件的百分比。它包含所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
    adb shell monkey -p com.xxx.zz --pct -anyevent 100 1000
    adb shell monkey -p com.xxx.zz --pct-anyevent 40 --pct-appswitch 50 1000

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

最后给大家一个复合型列子:
adb shell monkey -p com.xxx.zz --throttle 300 -v -v -v --ignore-crashes --ignore-timeouts --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 >F:\monkey_log.txt 2000

关于Monkey测试的命令及其参数的使用还有很多,大家可自行百度查找!

至此,Monkey测试环境搭建及测试执行结束,希望此篇文章对大家所有所帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343