Android测试命令行工具Monkey使用教程

合集下载

monkey工具介绍及用法

monkey工具介绍及用法

monkey⼯具介绍及⽤法monkey是android 系统⾃带的⼀个命令⾏⼯具,可以向被测应⽤程序发送伪随机的⽤户事件流(如按键、触屏、滑动等操作),实现对应⽤程序进⾏测试的⽬的。

monkey测试也叫猴⼦测试,是指测试时可以像好奇的猴⼦⼀样,不停的对应⽤程序进⾏随机操作,以便验证应⽤程序的稳定性和健壮性。

因此,monkey测试是软件稳定性,健壮性的测试⼯具下⾯是monkey提供的⼀些参数:参数:事件相关参数表:-s <seed> 这个参数是伪随机数⽣成器的种⼦值,如果⽤相同的随机种⼦值再次运⾏相同的monkey命令时,前、后两次执⾏的操作事件序列相同,也就是相同的操作。

--throttle <milliseconds> 这个参数是设定在两个事件之间插⼊⼀个固定延时,它可以减缓Monkey的执⾏速度。

如果您不指定选项,Monkey将不会被延迟,事件将尽可能快地⽣产和发送消息。

--pct-touch <percent> 这个参数是设定触屏事件⽣产的百分⽐,触屏事件是⼀个有⼿指按下、抬起事件的操作。

--pct-motion <percent> 这个参数是设定滑动事件⽣成的百分⽐,滑动事件是⼀个先在某⼀个位置⼿指按下,滑动⼀段距离后再抬起⼿势的操作。

--pct-trackball <percent> 这个参数是设定轨迹球事件⽣成的百分⽐,轨迹球事件是包含⼀系列随机移动和单击事件的操作。

--pct-nav <percent> 这个参数是设置基本的导航事件的百分⽐,基本导航事件的模拟⽅向性设置输⼊向上、向下、向左、向右的操作。

--pct-majornav <percent> 这个参数是设定主要导航事件的百分⽐,主要导航事件通常是导致UI产⽣回馈事件,如:单击BACK键,单击MENU键。

--pct-syskeys <percent> 这个参数是设定系统按键事件的百分⽐,系统按键是指这些按键通常被保留,由系统使⽤,如HOME,BACK,拨号,挂断及⾳量控制键。

MonkeyTest

MonkeyTest

Monkey Test1.环境搭建1.1 软硬件环境开发机:X86 PC Linux (推荐ubuntu10.04及以上)测试机:P1015 Gingerbread1.2建立连接通过network连接:Step1:将P1015接上网线。

Step2:进入Android Debug模式,修改init.rc文件修改eths service,在init.rc末尾。

如下service start_eths /system/bin/ifconfig eth0 10.66.3.222oneshotdisabled10.66.3.222:IP地址根据各自的网络环境设定Android Debug模式:我们Port的Gingerbread,启动的时候可以进入debug模式Step3:exit 退出debug,启动androidStep4:进入android命令行模式alt + F1, 查看network信息netcfg,确保网络被开启eth0 UP 10.66.3.222 255.0.0.0 0x00001043Step5:如果网络未被开启,请执行netcfg eth0 up然后repeat第四步,确保android能连上网Step6:在ubuntu在输入export ADBHOST = 10.66.3.222Step7:在ubuntu在输入adb devices查看连接状态List of devices attachedemulator-5554 device当然也有其他连接方式,可以参看网络资源。

采用两台device,测试端和被测端的目的是:1)可以同时查看UI变化和Log的输出2)防止android 死掉,从而丢失所有的测试信息2. 命令使用Monkey是一个命令行工具,可以运行在仿真器里或实际设备中。

它向系统发送伪随机的使用者事件流,实现对正在开发的应用程序进行压力测试。

Monkey包括许多选项,它们大致分为四大类:基本配置选项,如设置测试的事件数量。

Android压力测试工具Monkey简介

Android压力测试工具Monkey简介

Android压⼒测试⼯具Monkey简介测试步骤:1.安装ADB2.连接被测⼿机和电脑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,但是不产⽣任何事件。

monkey的使用

monkey的使用

monkey的使用以Monkey的使用为标题,我将为大家介绍一款功能强大的自动化测试工具——Monkey。

一、什么是Monkey?Monkey是一款由Google开发的自动化测试工具,主要用于测试Android应用程序的稳定性和性能。

它可以模拟用户在设备上的随机操作,如点击、滑动、手势等,以此来检测应用程序在不同场景下的稳定性和可靠性。

二、为什么选择Monkey?1.全面性能测试:Monkey可以模拟各种用户操作,随机生成事件序列,对应用程序进行全面性能测试。

通过对应用程序进行长时间、大量的随机操作,可以发现潜在的问题和性能瓶颈。

2.易于集成:Monkey可以与其他测试工具和框架进行集成,如JUnit、Robotium等。

通过与其他工具的结合,可以更加灵活地进行自动化测试,提高测试效率。

3.快速反馈:Monkey可以在短时间内生成大量的测试数据,快速发现应用程序中的问题。

这样可以及早发现和修复bug,提高应用程序的质量。

三、如何使用Monkey?1.安装Monkey:首先需要安装Android SDK,并将adb工具添加到系统环境变量中。

然后通过adb命令将Monkey安装到设备上。

2.编写Monkey脚本:Monkey的测试用例是通过一系列的命令行参数来控制的。

可以通过编写一个脚本文件,将这些参数进行组合,以实现特定的测试场景。

3.运行Monkey:通过adb命令启动Monkey,将脚本文件作为参数传入。

Monkey将根据脚本文件中的定义,模拟用户的随机操作。

四、Monkey的使用场景1.稳定性测试:Monkey可以通过模拟用户的随机操作,对应用程序进行长时间的稳定性测试。

这对于测试应用程序的内存泄漏、ANR(Application Not Responding)等问题非常有帮助。

2.压力测试:Monkey可以通过模拟大量的用户操作,测试应用程序在高负载情况下的稳定性和性能。

这对于评估应用程序在用户访问量增加时的表现非常重要。

超全的Monkey测试教程——简介篇(一)

超全的Monkey测试教程——简介篇(一)

超全的Monkey测试教程——简介篇(⼀)⽬录Monkey测试简介1. 什么是Monkey测试2. Monkey在哪⾥3. ⼿机如何与monkey通讯4. Monkey测试适⽤于什么时候1.什么是monkey测试Monkey测试呢,⼜称“猴⼦测试”,可以⽤来对Android⼿机或应⽤做压⼒测试。

顾名思义,它可以像猴⼦⼀样上蹿下跳、盲⽬的对应⽤做测试,校验应⽤的稳定性和健壮性。

它向系统发送伪随机的⽤户事件流,可以通过⾃动化⾼效地弥补app稳定性对测试⼈⼒和测试时间的要求。

伪随机:因为可以通过设置相同的seed值来⽣成相同的事件序列,因此成为伪随机事件流包括:点击、滑动、Application切换、横竖屏、应⽤关闭、按键输⼊、触摸屏输⼊等官⽹⽂档:https:///studio/test/monkey.html2.Monkey测试在哪⾥每台android⼿机⾥都有Monkey⼯具,但是我们是看不到的,因为Monkey不是⼀个可视化的⼯具,例如⼿机⾥的微信,这是⼀个可视化的,能打开,有图形化界⾯,但是Monkey没有。

3.⼿机与Monkey如何通讯我们需要借助 ADB 才能与Monkey进⾏通讯。

4.什么是ADB全称是 Android Debug Bridge,就是起到调试桥的作⽤。

⽤来操作android设备的。

adb ⼯具存在SDK中,也可以单独下载。

借助adb⼯具,我们可以管理设备或⼿机模拟器的状态,还可以进⾏很多⼿机操作,⽐如安装软件,系统升级,运⾏shell命令等等,其实简⽽⾔之,adb就是连接Android⼿机与PC端的桥梁,可以让⽤户在电脑上对⼿机进⾏全⾯的操作。

如下图:5.Monkey测试适合什么适合应⽤可⽤于产品早期,在产品不稳定、崩溃问题较多,通过monkey能尽早发现,且有清晰的错误⽇志,便于开发排查解决问题。

在就是⽤于应⽤发布前,作为最后⼀轮测试,以上就是Monkey测试的简介,如有不⾜和错误之处望⼤家指正,⼤家共同学习和进步~Monkey测试实战请看下⼀篇吧~参考博客:https:///u011541946/article/details/77142045。

monkey命令详解

monkey命令详解

Android上压力测试命令monkey详解一、Monkey 是什么◆Monkey是Android SDK中附带的一个命令行工具,可以运行在模拟器或者实际设备中◆向系统发送伪随机的用户事件流(按键输入、触摸屏输入、手势输入等)◆实现对正在开发的应用程序进行压力测试◆Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法二、Monkey程序介绍◆Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar◆Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey三、Monkey 测试的目的开发人员结合monkey 打印的日志和系统打印的日志,分析测试中出现的问题◆ANR问题:在日志中搜索“ANR”◆崩溃的问题:在日志中搜索“Exception”说明:ANR:Application Not Responding,在Android中,如果应该程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框,用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”应用。

好的程序应该能流畅运行,不能出现ANR问题。

四、Monkey 测试的特点◆测试的对象仅为应用程序包,有一定的局限性(不能对源码进行测试)◆测试使用的所有事件流数据流都是随机产生的,不能进行自定义,不带任何人的主观性◆可对MonkeyTest的对象,事件数量,类型,频率等进行设置五、Monkey 命令详解1、标准的monkey 命令[adb shell] monkey [options] <eventcount>如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包如:adb shell monkey -p -v 500-p 指定测试程序包名-v 显示默认程度的信息500 事件数设定为500启动指定的应用程序,并向其发送500个伪随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)上面只是一个简单的例子,实际情况中通常会有很多的options 选项2、四大类——常用选项、事件选项、约束选项、调试选项✧常用选项--help:打印帮助信息,列出简单的用法adb shell monkey –help✧-v:指定打印信息的详细级别(即:日志的详细程度),一个-v增加一个级别*如:*adb shell monkey -p packagename -v -v – throttle 600 88-v -v :Level 1,提供较为详细的测试信息,如:逐个发送到Activity的事件--throttle 600:每个操作都间隔时间600ms88:执行的事件数Monkey报告等级总共3级,默认级别为0Level 0(缺省值),除启动提示、测试完成和最终结果之外,提供较少信息adb shellmonkey -p packagename -v 100Level 1,提供较为详细的测试信息,如:逐个发送到Activity的事件信息adb shellmonkey -p packagename -v -v 100Level 2,提供更加详细的设置信息,如:测试中被选中的或未被选中的Activityadb shellmonkey -p packagename -v -v -v 1002)事件选项✧-s<seed>:指定伪随机数生成器的seed值,如果用相同的seed值再次运行Monkey,则两次Monkey测试所产生的事件序列相同举例:Monkey测试1:adb shell monkey -p packagename -s 10 100Monkey测试2:adb shell monkey -p packagename -s 10 100两次测试的效果是相同的说明:模拟的操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列是伪随机的✧--throttle<milliseconds>:指定每个事件结束后的间隔时间,单位毫秒举例:adb shell monkey -p packagename -throttle 100说明:指定了固定的延迟时间后,可以减缓Monkey的执行速度,降低系统的压力。

monkey测试方法

monkey测试方法

monkey测试⽅法
1、Monkey测试原理:
Monkey是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器⾥或实际设备中。

它向系统发送伪随机的⽤户事件流(如按键输⼊、触摸屏输⼊、⼿势输⼊等),实现对正在开发的应⽤程序进⾏压⼒测试。

Monkey测试是⼀种为了测试软件的稳定性、健壮性的快速有效的⽅法。

2、monkey常见命令:
adb shell monkey {+命令参数} 次数
adb shell monkey -help/-h
3、解析:
adb shell monkey –v –v –v –p 包名 –s 200 --throttle 1000 --ignore-crashes --ignore-timeouts 10000
-v:⽤于指定反馈信息级别,即⽇志的详细程度,总共有三个级别
-p:后边接着对应的包名,如果是整机测试,就不需要,⽤此参数指定⼀个或多个包(package,即APP名字)
-s:seed值,如果seed值相同,则两次的随机事件相同,常⽤于问题重现
--throttle <毫秒>:⽤于指定⽤户(即事件间)的时间延迟,单位是毫秒
--ignore-crashes --ignore-timeouts:在monkey测试过程中,遇到crash或者timeout的情况时忽略,⼀般不设置时,出现crash或者timeout时,monkey测试会终⽌,这⾥是防⽌monkey测试终⽌。

10000:随机事件次数
4、终⽌进程:
adb shell
ps | grep monkey
kill -9 pid。

Monkey使用说明书

Monkey使用说明书

Monkey一.什么是monkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或者实际设备中,它向系统发送伪随机的事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

Moneky测试是为了测试软件的稳定性、健壮性的一种有效方法。

二.Monkey的特征测试的对象仅为应用程序包,有一定局限性Moneky测试的时间是随机的不能进行自定义可对monkey test 的对象、事件数量、类型、频率等进行设置。

三.Monkey使用环境的搭建Monkey环境配置:首先搭建monkey的运行环境在Windows下基于SDK1.下载SDK for Windows 解压:android-sdk-windows 到D:盘根目录2. 设置sdk下面tools的环境变量(具体参考百度,有详细说明)/article/f71d603757965b1ab641d12a.html(在下载Sdk前要下载JDK,关于JDK环境变量的配置请参考/article/e9fb46e1b2b3347521f766c1.html)SDK本身的安装是通过sdk manager这个程序下载相关的安装包来进行的,安装好后不会有图标显示在桌面上,因为其本身只是提供相关工具包的使用。

在sdk manager下载过程中,因为谷歌在中国被封杀,而相关工具包的下载都是通过谷歌下载的,所以大家会发现下载速度超慢并且下载经常中断,这里大家可以用迅雷直接在下载地址里下载:在右下角有个log点击可看到如下:在Parse XML下即为该该地址文档里所包含的文件,用迅雷将Parse XML后的地址下载打开,再在里面找到要用的文件名,将Parse XML 地址最后面的部分改为文件名成为一个新链接后,将此链接放在迅雷里下载即可。

下载后的文件放到sdk的tools文件夹下并且记得重新打开sdk manager进行安装:点击下载好的文件,然后点击左边的install即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Monkey是什么
Monkey是可以运行在模拟器里或实际设备中的程序。

它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

Monkey简介
Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。

它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。

Monkey包括许多选项,它们大致分为四大类:
·基本配置选项,如设置尝试的事件数量。

·运行约束选项,如设置只对单独的一个包进行测试。

·事件类型和频率。

·调试选项。

在Monkey运行的时候,它生成事件,并把它们发给系统。

同时,Monkey 还对测试中的系统进行监测,对下列三种情况进行特殊处理:
·如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

·如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

·如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。

Monkey的基本用法
可以通过开发机器上的命令行或脚本来启动Monkey。

由于Monkey运行在模拟器/设备环境中,所以必须用其环境中的shell来进行启动。

可以通过在每条命令前加上adb shell来达到目的,也可以进入Shell后直接输入Monkey命令。

基本语法如下:$ adb shell monkey [options]
如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:$ adb shell monkey -p -v 500
命令选项参考
先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName 不然不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root)。

①在android设备上点击一下你要测试的设备,然后就不用操作设备了。

②在PC上的命令行输入:adb logcat>D:/log.txt *:I
在这里的D:/log.txt你可以改成其他的路径,但是一定要先确保路径下没有这个文件,不然的话你以前的文件就被改掉了,一定要小心。

③按下Ctrl+c先停掉(为了避免过多的新信息)。

打开刚刚的那个文件D:/log.txt。

从文件最下面开始找下面格式的信息
I/ActivityManager( 数字): Displayed 包名/类名: +数字ms
例如我的信息如下:
I/ActivityManager( 272): Displayed com.vane/.act.ActLauncher: +315ms 不过你可能会发现有很多这种格式的信息,到底哪个才是你需要的呢,如果你严格按照刚刚的步骤做的话,那么很可能是最下面那条信息,即使不是那么也肯定是最下面几条信息中的某一条,这需要你根据应用进行辨别。

④记下你刚刚得到的包名,例子中的包名为“com.vane”。

马上就会用。

3、使用Monkey发一条测试命令。

这一步就比较简单了。

直接在pc上的命令行输入:adb shell monkey -p com.vane -v 50
备注:上面命令中的com.vane就是之前获得的包名;命令中的参数你可以自己根据需要参考上面的参数文档进行修改。

4、观察android设备,直到Monkey停止。

5、如果应用崩溃的话就好分析一下Monkey中的信息。

总结
Monkey的使用确实比较简单,但是在测试中确有不小的作用,值得使用。

相关文档
最新文档