monkey测试指南
monkey测试结果分析
monkey测试结果分析Monkey测试结果分析⼀. 初步分析⽅法:Monkey测试出现错误后,⼀般的差错步骤为以下⼏步:1、找到是monkey⾥⾯的哪个地⽅出错2、查看Monkey⾥⾯出错前的⼀些事件动作,并⼿动执⾏该动作3、若以上步骤还不能找出,可以使⽤之前执⾏的monkey命令再执⾏⼀遍,注意seed值要⼀样⼀般的测试结果分析:1、 ANR问题:在⽇志中搜索“ANR”2、崩溃问题:在⽇志中搜索“Exception”⼆. 详细分析monkey⽇志:将执⾏Monkey⽣成的log,从⼿机中导出并打开查看该log;在log的最开始都会显⽰Monkey执⾏的seed值、执⾏次数和测试的包名。
1.⾸先我们需要查看Monkey测试中是否出现了ANR或者异常,具体⽅法如上述。
2.然后我们要分析log中的具体信息,⽅法如下:①查看log中第⼀个Switch,主要是查看Monkey执⾏的是那⼀个Activity,譬如下⾯的log中,执⾏的是com.tencent.smtt.SplashActivity,在下⼀个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
:Switch:#Intent;action=android.intent.action.MAIN;category=UNCHER;launchFlags=0x10000000;component= // Allowing start of Intent {act=android.intent.action.MAIN cat=[UNCHER]cmp= } in package com.tencent.smtt ②在下⾯的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执⾏了⼀个单击的操作;Sleeping for 500 milliseconds这句log是执⾏Monkey测试时,throttle设定的间隔时间,每出现⼀次,就代表⼀个事件。
Monkey测试详解
Monkey测试详解概念:monkey test,也有⼈叫做搞怪测试,⼀般指⽤毫⽆规律的指令或操作去测试被测系统,观察被测系统的稳定性和容错性。
这种测试⽅式在产品周期中的早期阶段会找到很多很好的bug,为⽤户节省不少的时间。
介绍:Monkey是Android系统⾃带⼀个命令⾏⼯具,可以运⾏在模拟器⾥或者真实设备中运⾏。
monkey向系统发送伪随机的⽤户事件流,实现对正在开发的应⽤程序进⾏压⼒测试。
monkey包括很多选项,⼤致四⼤类:1.基本配置选项,如设置尝试的事件数量。
2.运⾏约束选项,如设置只对单独的⼀个包进⾏测试。
3.事件类型和频率。
4.调试选项Monkey 命令启动⽅式:a. 可以通过PC机CMD窗⼝中执⾏: adb shell monkey {+命令参数}来进⾏Monkey测试b. 在PC上adb shell 进⼊Android系统,通过执⾏monkey {+命令参数} 来进⾏Monkey 测试c. 在Android机或者模拟器上直接执⾏monkey 命令,可以在Android机上安装Android终端模拟器monkey命令特性:不可能使⽤monkey来指定做⼀样测试,重复做很多次。
因为monkey产⽣的是伪随机的事件流。
但是我们可以通过添加命令选项将操作限制在⼀定的范围内。
⼀、⾸先你要先搭建环境1.先下载jdk具体安装流程请参考:JDK教程2.再下载sdk 具体安装流程请参考:SDK教程⼆、在开发者选项⾥打开⼿机的usb调试,⽤usb数据线连接⼿机,允许电脑连接⼿机。
三、monkey前的准备命令1.windows+R 输⼊cmd进⼊dos命令⾏;2.输⼊adb devices 下⾯出现类似下图的组合你就成功了;3.输⼊ adb shell pm list packages查看⼿机所有的包名,输⼊ adb shell pm list packages -3 查看⼿机上所有的第三⽅包名。
monkey测试标准
Monkey测试是一种通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等)来对应用程序客户端进行稳定性测试的方法。
其标准如下:
1.测试目的:验证APP的稳定性以及是否会在各种异常场景下出现未知的错误和异常。
2.测试方法:使用Google原生的Monkey测试框架,执行指定参数的测试,并记录运行日志和报
错日志。
3.测试指令:通过adb shell命令执行Monkey测试,并可以指定一系列参数进行更精细的测试。
例如:adb shell monkey -p 包名--pct-touch 16 --pct-motion 16 --pct-trackball 16 --pct-majornav 16 --pct-appswitch 16 --pct-nav 16 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v -v -v --throttle 500 9999999 -s 123456。
4.判定标准:关注各种指标,如ANR、CRASH、OOM、Error、Exception、GC等,并根据实
际需求制定相应的通过标准。
此外,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稳定性测试的步骤及策略1、adb的作⽤是什么?adb的全称:android debug bridge 安卓调试桥梁,包含在 Android SDK 平台⼯具软件包中。
通过该命令与设备进⾏通信,以便进⾏调试adb可以同时管理多个安卓设备2、monkey测试环境搭建1)下载并安装JDK包,设置环境变量2)下载Android SDK包并解压,配置环境变量E:\Android SDK\Adt Bundle\sdk\tools monkey环境路径E:\Android SDK\Adt Bundle\sdk\platform-tools adb环境路径3)启动dos窗⼝,分别输⼊C:\Users\Administrator>java -versionjava version "1.8.0_181"Java(TM) SE Runtime Environment (build 1.8.0_181-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)C:\Users\Administrator>adb versionAndroid Debug Bridge version 1.0.31C:\Users\Administrator>monkeyrunnerJython 2.5.0 (Release_2_5_0:6476, Jun 16 2009, 13:33:26)[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_181命令查看环境是否搭建好3、连接设备1)⼿机与PC通过数据线连接,在⼿机系统设置⾥开启开发者模式和USB调试模式,设置屏幕为常亮2)在dos窗⼝输⼊ adb devices命令查看设备是否连接上了C:\Users\Administrator>adb devicesList of devices attached9656c4f7 deviceadb ⼦命令参考logcat 打印出安卓系统⽇志adb logcat -d >E:\1.txt-d ⼀次性返回⽇志信息,不需要实时跟踪>E:\1.txt 重定向并保存⽇志install 将某个.apk⽂件安装到指定设备adb install D:\test\weitaixin.apkuninstall 从指定设备上卸载⼀个应⽤,根据包名卸载模拟器中的APPadb uninstall cn.xxxx.xxxx获取报名⽅式1)通过解包⽅式C:\Users\Administrator>aapt dump badging E:xxx.0apkpackage: name='cn.xxx.xxx' versionCode='2701' versionName='2.7.0'sdkVersion:'19'targetSdkVersion:'26'2)通过adb命令获得所有报名adb shell pm list packages(package manager)3)模糊报名进⾏过滤(前提:知道⼤概的报名)adb shell pm list packages weitaixin4)通过管道符 grep进⾏过滤(前提:知道⼤概的报名)C:\Users\Administrator>adb shellPBEM00:/ $ pm list packages |grep weitaipm list packages |grep weitaipackage:cn.xxx.xxx5)通过启动程序,获取当前启动程序的包名C:\Users\Administrator>adb shellPBEM00:/ $ dumpsys window |grep mCurrentdumpsys window |grep mCurrentmCurrentUserId=0mCurrentFocus=Window{fe0aeaf u0 cn.xxx.xxx/cn.xxx.xxx.ui.main.MainActivity}mCurrent=[0,96][1080,2208]mCurrentAppOrientation=SCREEN_ORIENTATION_PORTRAITmCurrentRotation=ROTATION_06)找到⽬录,获取指定⽂件C:\Users\Administrator>adb shellPBEM00:/ $ cd /data/datacd /data/dataPBEM00:/data/data $ lspull 把Adroid设备中的⽂件复制到本地开发机例如:adb pull /data/data/1.txt D:\2.txt⼿机端的路径和⽂件 PC端的路径及重命名push 把本地开发机上的⽂件复制到安卓设备中例如:abd push C:\1.xt /data/dataPC端的位置和⽂件⼿机端的位置get-serialno 打印设备的序列表get-state 打印设备状态kill-server 结束adb服务进程shell 打开指定安卓设备的shell,以执⾏shell命令adb shell 进⼊安卓命令状态安卓系统是基于linux内核开发的,安卓命令和linux命令相似pwd:查看当前所在⽬录ls -l 查看当前⽬录下的资源属性date 打印当前系统时间cat /proc/meminfo 查看内存信息cat /proc/cpuinfo 查看CPU信息ps 查看当前进程信息Monkey测试:是Android中的⼀个命令⾏⼯具,可以运⾏在模拟器⾥和实际设备中。
monkey
ANR
• 应用响应超时;
• 在设备上一般系统弹出窗口询问用户选择 “Force Close”或者“Wait”。 • “Force Close”将杀掉发生ANR的应用进程。 “Wait”将会等待系统择机恢复此应用进程。
VMreboot
• 手机在测试过程中出现虚拟机重启,即为 系统上层重启。
• 清除之前log • adb shell • cd sdcard • ls • 若存在mtklog文件夹,进行删除 • rm –r /sdcard/mtklog • 开启mtklog : adb shell am start -n com.mediatek.mtklogger/.MainActivity • ,设置mtklog大小 • 设置手表时间为当前时间 • 重启手机 生成MTKlog文件夹
Monkey测试标准
• Monkey测试标准如下:
1.整机测试时间在12小时以上;
2.无死机定屏重启等严重问题;
3.无anr、crash、vmreboot等严重问题
Log分析
• • • • • • 1.monkey log介绍 2.关键字Monkey finished 3.关键字Crash 4.关键字ANR 5.关键字NullPointerException 6.Vm reboot
• 05-16 07:16:24.503: E/AndroidRuntime(17625): FATAL EXCEPTION: main 0516 07:16:24.503: E/AndroidRuntime(17625): ng.RuntimeException: Unable to start activity ComponentInfo{com.example.fdc/com.example.fdc.Medical_Record}: ng.NullPointerException 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.os.Handler.dispatchMessage(Handler.java:99) 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.os.Looper.loop(Looper.java:123) 05-16 07:16:24.503: E/AndroidRuntime(17625): at android.app.ActivityThread.main(ActivityThread.java:3687) 05-16
Monkey测试方法总结
Monkey测试方法总结Monkey测试是一种随机化黑盒测试方法,它可以在不考虑内部结构和逻辑关系的情况下,对软件系统进行广泛的、自动化的测试。
通过模拟用户的随机操作,如点击、滑动、输入等,来发现潜在的程序错误和系统缺陷。
本文将从Monkey测试的原理、优点、缺点、测试方法及应用场景等方面进行详细介绍。
一、Monkey测试的原理Monkey测试是基于随机触发事件的方法,它的原理是模拟用户的操作行为,通过随机化的方式触发应用程序中的事件,如点击、滑动、输入等,以此来测试系统的稳定性和可靠性。
在Monkey测试中,测试工具会生成随机数,并按照一定的概率分布来触发各种事件,以覆盖尽可能多的应用场景和操作路径。
通过不断地随机触发事件,可以发现潜在的软件缺陷和系统错误,提高软件的稳定性和可靠性。
二、Monkey测试的优点1.自动化:Monkey测试是一种完全自动化的测试方法,测试工具可以自动生成随机事件,并按照一定的概率分布触发,大大减少了测试人员的工作量。
2.广泛性:Monkey测试可以通过随机触发事件来覆盖尽可能多的应用场景和操作路径,从而发现潜在的软件缺陷和系统错误。
3.快速性:Monkey测试可以在较短的时间内完成测试,提高了测试效率。
4.全面性:Monkey测试可以对整个系统进行测试,包括应用程序、系统服务和硬件设备等。
5.可重复性:Monkey测试可以通过设置种子数来保证测试结果的可重复性,便于后续的调试和分析。
三、Monkey测试的缺点1.未考虑内部结构和逻辑关系:Monkey测试只模拟用户的随机操作,未考虑应用程序的内部结构和逻辑关系,可能无法发现与具体业务逻辑相关的错误。
2.无需提供测试用例:Monkey测试是一种黑盒测试方法,不需要提供具体的测试用例,但有时可能无法确保测试数据的完整性和正确性。
3.随机性可能导致测试结果不准确:由于Monkey测试是基于随机触发事件的方法,测试结果具有一定的偶然性,可能无法全面覆盖系统的所有功能和路径。
monkey测试基本操作文档
Monkey测试基本操作一.简介:Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。
它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
二.操作步骤:1.进入D:\eclipse(eclipse的安装路径),打开eclipse2.点击菜单栏上面的第五个图标Opens the Android SDK and AVD Manager,如下图所示3.弹出Android SDK and AVD Manager对话框,如下图所示4.选中Android 2.2,点击右边的Start,启动模拟器5.点击开始----运行---cmd,确定,打开命令行6.在命令行中输入:adb devices查看设备连接情况C:\Documents and Settings\Administrator>adb devicesList of devices attachedemulator-5554 device7.在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面C:\Documents and Settings\Administrator>adb shell#8.输入ls查看当前文件夹下的目录,执行结果如下C:\Documents and Settings\Administrator>adb shell# lslsconfigcachesdcardacctmntdetcsystemsyssbinprocinit.rcinit.goldfish.rcinitdefault.propdatarootdev#9.应用程序包都在data下,我们输入cd data进入data文件夹下,如下# cd datacd data10.输入ls查看文件夹下的内容,如下所示# lslsbackupappdatatombstonesdontpanicmisclocalapp-privatepropertyanrdalvik-cachesystemlost+found#11.还有一个data,所有的应用程序都在这个data下,进入这个data,然后输入ls 查看# cd datacd data# lslscom.example.android.apiscom.android.musiccom.android.providers.downloadscom.android.providers.settingscom.android.providers.contactsunchercom.android.spare_partscom.android.fallbackcom.android.gallerycom.android.contactscom.android.htmlviewererdictionary com.android.mmscom.android.alarmclockcom.android.providers.mediacom.datou.hibrowsercom.android.providers.telephony com.android.cardockcom.android.cameracom.android.protipscom.android.developmentcom.android.defcontainercom.android.server.vpncom.android.soundrecordercom.android.calculator2com.android.providers.applications com.android.speechrecordertincom.android.customlocalecom.android.inputmethod.pinyin com.android.providers.subscribedfeeds com.android.providers.drmcom.svox.picocom.android.sdksetupcom.android.termcom.android.phonecom.android.certinstallercom.android.wallpaper.livepicker speedcom.android.packageinstaller android.ttscom.android.emailcom.android.settingscom.googlecode.pythonforandroid com.googlecode.android_scripting com.android.quicksearchboxjp.co.omronsoft.openwnn#12.找到我们需要的应用程序包:com.datou.hibrowser13.可以直接输入monkey –p com.datou.hibrowser –v 100,也可以退出sehll,在命令行直接输入adb shell monkey –p com.datou.hibrowser –v 100,运行过程中,模拟器中的应用程序在不断的切换画面。
monkey测试结果详细分析
monkey测试结果详细分析一、为什么要用Monkey 测试?简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性。
号称最快速有效的方法。
有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug。
而此时猴子就比人更有效了。
简介Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。
它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。
Monkey包括许多选项,它们大致分为四大类:· 基本配置选项,如设置尝试的事件数量。
· 运行约束选项,如设置只对单独的一个包进行测试。
· 事件类型和频率。
· 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。
同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:· 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
· 如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
· 如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
二、怎么用的?首先用一个最简单的例子分析://p参数:表示指定测试的程序//v参数:表示查看monkey生成的一些详细的随机的事件名//数字100:表示测试事件数为100monkey -p com.example.android.apis -v -v -v 100结果如下::Monkey: seed=0 count=100:AllowPackage: com.example.android.apis:IncludeCategory: UNCHER:IncludeCategory: android.intent.category.MONKEY//各种事件所占的比例。
monkey测试方法
Monkey测试前的准备工作:1.准备一张存储空间足够的SD卡,以防log被写满,并拷贝一些图片,MP3,视频文件等2.设置屏幕延时为最大值(settings->Display->Screen timeout->30 minutes or never)3.打开USB调试模式,确保adb可以连接4.使用ENG版本,且移除第三方应用及GMS(Google mobile service)应用包5.执行monkey测试前,一定要确保屏幕解锁6.测试前清除历史LOG7.全程完整录制MTKLogger,并且抓取adb log8.如出现anr,需要抓取/data/anr目录9.记录发生问题的时间点(条件允许的前提下)10.测试高耗掉的模块时,请使用满电的电池进行测试(如camera/gallery,call等)11.准备一张sim卡,插入手机(在测试通话,信息,联系人等模块可能会用到)。
Monkey测试命令:1.对单独模块进行monkey测试:adb shell monkey –v -v –p 模块的包名–-throttle 500 3000002.对整机进行monkey测试:adb shell monkey -s 6516 --throttle 200 --ignore-security-exceptions -v 3000000 Monkey测试结果的判断:1.Monkey测试结果为pass的,LOG信息最后一行会有Monkey finished的字样。
2.Monkey测试结果为fail的,有以下两种情况:A.LOG的最后会有以下提示字样,表示此次monkey测试fail,提供所有log给开发。
如:** Monkey aborted due to error.Events injected: 37511:Sending rotation degree=0, persist=false:Dropped: keys=0 pointers=24 trackballs=0 flips=0 rotations=0## Network stats: elapsed time=4508008ms (0ms mobile, 0ms wifi, 4508008ms not connected)** System appears to have crashed at event 37511 of 300000 using seed 1358091994830B.LOG中无A情况中的错误信息提示,也无Monkey finished字样,但monkey 测试已中断,该问题仍定位为monkey测试fail,需要给开发提供所有的LOG,开发查找calendar_time关键字去定位问题。
APP测试--Monkey命令
shell, monkey, system, Android, 文件系统Monkey, 示例, 简介一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
二、Monkey程序介绍1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android 文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。
三、Monkey命令的简单帮助要获取Monkey命令自带的简单帮助,在CMD中执行命令:adb shell monkey –help四、Monkey命令参数介绍1) 参数:-p参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。
指定包之后,Monkey将只允许系统启动指定的APP。
如果不指定包,Monkey将允许系统启动设备中的所有APP。
* 指定一个包:adb shell monkey -p com.htc.Weather 100说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。
* 指定多个包:adb shell monkey -p com.htc.Weather–p com.htc.pdfreader -p com.htc.photo.widgets 100* 不指定包:adb shell monkey 100说明:Monkey随机启动APP并发送100个随机事件。
如何利用Monkey工具进行Android自动化测试
如何利用Monkey工具进行Android自动化测试自动化测试在软件开发中起到了至关重要的作用,它可以有效地提高测试效率、节省测试时间,并且能够减少人为错误的可能性。
而在Android开发领域,Monkey工具是一种非常实用的自动化测试工具,它可以模拟用户在设备上的随机操作,从而对应用程序进行全面的测试。
本文将介绍如何使用Monkey工具进行Android自动化测试。
一、Monkey工具简介Monkey工具是Android平台提供的一种压力测试工具,它通过产生伪随机事件(如点击、滑动、触摸等)来模拟用户操作。
Monkey工具不需要源代码,只需要一个APK文件即可进行测试。
因此,它可以对任何已安装的Android应用进行测试,包括系统应用和第三方应用。
二、Monkey工具的使用步骤1. 连接设备首先,将Android设备连接到开发电脑上,确保设备处于调试模式下,并且已安装好ADB工具。
2. 启动Monkey工具在命令行窗口中输入以下命令来启动Monkey工具:```adb shell monkey <参数>```其中,参数是指定Monkey工具的具体配置和行为方式。
3. 配置参数根据测试需求,设置不同的参数来指导Monkey工具的行为。
以下是常用的参数配置示例:- `--pct-touch`:设置触摸事件的百分比。
- `--pct-motion`:设置手势事件的百分比。
- `--throttle`:设置事件之间的间隔时间,单位为毫秒。
- `--ignore-crashes`:忽略崩溃错误。
- `--ignore-timeouts`:忽略超时错误。
- `--package`:指定要测试的应用程序包名。
4. 运行Monkey测试配置完参数后,输入以下命令来运行Monkey测试:```adb shell monkey -p <应用程序包名> <事件次数>```其中,应用程序包名是指定要测试的应用程序包名,事件次数是指定Monkey工具执行事件的总次数。
monkey 参数
Monkey 参数1. 什么是 Monkey 参数?Monkey 参数是指在进行 Android 平台的 Monkey 测试时,用于控制 Monkey 行为的一系列参数。
Monkey 测试是一种自动化的压力测试方法,通过生成伪随机的用户事件序列,模拟用户对应用程序的操作,以检测潜在的崩溃和异常情况。
2. Monkey 参数的作用通过设置 Monkey 参数,可以控制 Monkey 测试的行为,以满足测试的需求。
常见的 Monkey 参数包括事件百分比、事件数量、随机种子等。
2.1 事件百分比Monkey 测试通过产生各种随机事件来模拟用户的操作,如点击、滑动、按键等。
通过设置事件百分比,可以指定每种事件在测试中的触发频率。
例如,设置点击事件百分比为 50%,表示点击事件在测试中触发的频率为 50%。
2.2 事件数量Monkey 测试可以设置事件数量,即要执行的事件总数。
通过设置事件数量,可以控制测试的持续时间和覆盖范围。
较小的事件数量可能只测试应用程序的一小部分功能,而较大的事件数量可以更全面地测试应用程序的各个方面。
2.3 随机种子随机种子是一个整数,用于初始化随机数生成器。
通过设置随机种子,可以确保每次运行 Monkey 测试时生成的事件序列是相同的。
这对于重现问题和调试非确定性问题非常有用。
3. 如何设置 Monkey 参数在 Android 设备上执行 Monkey 测试时,可以通过命令行参数来设置 Monkey 参数。
以下是常见的设置 Monkey 参数的方法:3.1 设置事件百分比通过-pct参数可以设置每种事件的触发百分比。
例如,-pct-touch 50表示点击事件的触发百分比为 50%。
3.2 设置事件数量通过-v参数可以设置要执行的事件数量。
例如,-v 1000表示要执行 1000 个事件。
3.3 设置随机种子通过-s参数可以设置随机种子。
例如,-s 1234表示设置随机种子为 1234。
monkey的常用操作
"Monkey" 通常指的是"Android Monkey",它是一种用于测试Android 应用程序的工具。
以下是一些"Monkey" 的常用操作:
1. 启动"Monkey" 测试:通过命令行或者开发工具启动"Monkey" 测试。
2. 设置测试参数:可以设置如事件数量、触摸事件百分比、滑动事件百分比等参数。
3. 运行测试:启动"Monkey" 测试后,它会模拟用户操作,如点击、滑动、输入等,对应用程序进行随机测试。
4. 查看测试结果:"Monkey" 会生成测试报告,其中包含了测试过程中发生的事件、崩溃等信息。
5. 分析崩溃:如果测试过程中发生了崩溃,可以通过分析崩溃日志来定位和修复问题。
6. 重复测试:根据需要,可以重复运行"Monkey" 测试,以确保问题得到修复。
这些是"Monkey" 的一些常用操作,它可以帮助开发者发现应用程序
中的稳定性问题和兼容性问题。
在使用"Monkey" 进行测试时,需要根据实际需求合理设置测试参数,并结合其他测试方法进行综合测试。
monkey稳定性测试,常用执行命令和如何结束monkey的执行中进程
monkey稳定性测试,常⽤执⾏命令和如何结束monkey的执⾏中进程⼀、稳定性命令adb shell monkey -p 包名 -v -v -v -s 111 --throttle 2000 --randomize-throttle --pct-touch 50 --pct-motion 50 --ignore-crashes --ignore-timeouts --ignore-native-crashes --ignore-security-exceptions 1000 > D:\monkey_log.txt-p 表⽰指定被测应⽤程序-v -v -v 表⽰指定⽇志详细程度-s 表⽰执⾏的seed值运⾏同⼀个流程标记⼀样的值次数也要和上次的数值设置⼀样在执⾏命令前app两次的初始停留的页⾯也要保证⼀致--throttle 2000 --randomize-throttle 表⽰执⾏事件和执⾏事件中间,间隔时间执⾏随机时间 0-2000毫⽶=2秒可以直有--throttle 2000 表⽰事件执⾏间隔2秒可以设置为0--pct-touch 50 表⽰点击事件执⾏占⽐50%--pct-motion 50 表⽰移动,滑动事件执⾏占⽐50%--ignore-crashes 表⽰调试时便于筛选⽤于指定当应⽤程序崩溃时(Force& Close错误),Monkey是否停⽌运⾏。
如果使⽤此参数,即使应⽤程序崩溃,Monkey依然会发送事件,直到事件计数完成--ignore-timeouts (⽆响应ANR)表⽰调试时便于筛选⽤于指定当应⽤程序发⽣ANR(Application No Responding)错误时,Monkey是否停⽌运⾏。
如果使⽤此参数,即使应⽤程序发⽣ANR错误,Monkey依然会发送事件,直到事件计数完成--ignore-native-crashes (许可证书崩溃)表⽰调试时便于筛选⽤于指定当应⽤程序发⽣许可错误时(如证书许可,⽹络许可等),Monkey是否停⽌运⾏。
monkey测试用例
monkey测试用例【原创实用版】目录1.Monkey 测试用例简介2.Monkey 测试用例的特点3.Monkey 测试用例的实际应用4.Monkey 测试用例的优缺点分析5.Monkey 测试用例的未来发展正文【Monkey 测试用例简介】Monkey 测试用例是一种在软件开发过程中用于测试应用程序的自动化测试工具。
Monkey 测试用例可以模拟人类使用应用程序的各种操作,以检测应用程序的性能和稳定性。
【Monkey 测试用例的特点】Monkey 测试用例具有以下特点:1.自动化:Monkey 测试用例可以自动执行各种测试操作,节省了人工测试的时间和精力。
2.随机性:Monkey 测试用例可以随机模拟用户操作,可以更全面地测试应用程序的性能和稳定性。
3.高效性:Monkey 测试用例可以同时测试多个应用程序,提高了测试效率。
【Monkey 测试用例的实际应用】Monkey 测试用例在实际应用中主要用于测试应用程序的性能和稳定性。
例如,在测试应用程序的响应速度、内存泄漏、CPU 占用率等方面,Monkey 测试用例可以模拟用户操作,以检测应用程序的性能和稳定性。
【Monkey 测试用例的优缺点分析】Monkey 测试用例的优点包括:自动化、随机性、高效性等。
这些优点使得 Monkey 测试用例在软件开发过程中得到了广泛应用。
然而,Monkey 测试用例也存在一些缺点,例如:测试结果的可靠性较低、需要编写复杂的测试脚本等。
这些缺点限制了 Monkey 测试用例的发展。
【Monkey 测试用例的未来发展】随着软件开发过程的不断发展,Monkey 测试用例也将得到进一步的完善和发展。
稳定性测试(monkey)
稳定性测试(monkey)Monkey是Android SDK提供的⼀个命令⾏⼯具,可以简单⽅便的发送伪随机的⽤户事件流,对Android APP做压⼒(稳定性)测试。
主要是为了测试app是否存在⽆响应和崩溃的情况。
⼀、环境搭建 只要按照配置Android SDK环境和环境变量即可。
⼆、Monkey的使⽤1、进⼊adb shell 环境 在windows环境中,进⼊DOS界⾯,在界⾯中,输⼊adb shell即可进⼊adb shell环境(注意:adb shell服务使⽤的5037的端⼝,如果此端⼝被其他进程占⽤时,将不能正常启动adb shell,问题处理⽅法见:)如: 表⽰adb shell启动成功,shell@****:/$中,****表⽰设备id。
$:表⽰普通⽤户;#表⽰root⽤户。
2、在adb shell环境下输⼊monkey的相应命令即可。
如:3、查看需要测试的包名 如果有root权限,可以进⼊/data/data/下使⽤ls/ls-a查看(不能使⽤ll) 如果⽆root权限,可以使⽤:pm list packages查看 (需要控制monkey执⾏的时间,可以通过设置执⾏时长/事件发送延时,计算出需要执⾏的次数。
如:想要monkey运⾏24⼩时,每100毫秒发送⼀个事件。
24*60*60*1000/100=864000(次) monkey -p *** --ignore-crashes --ignore-timeoutss --throttle 100 864000 表⽰:此次monkey将会运⾏24⼩时三、Monkey的命令参数详细说明 monkey的命令参数分为: 基础参数:-v 、-s 、-p 、--throttle等 调试选项:--ignore-crashes等 事件类型:--pct-touch等(⼀)基础参数1、最简单的monkey命令(monkey 100)表⽰:在设备上,针对整个系统发送100个伪随机事件。
Monkey测试-Monkey命令详解
Monkey测试-Monkey命令详解Monkeymonkey是⼀个⿊盒压⼒测试⼯具,采⽤随机算法,对被测应⽤随机发送伪随机的⽤户事件流,如点击,拖拽,滑动,输⼊等,来确定应⽤是否会发⽣异常,并且会产⽣⽇志来进⾏分析,但是测试数据测试事件都是随机的,有⼀定局限性。
适合作为压⼒或者稳定性测试⼯具来测试应⽤的崩溃率,稳定性。
但是可以通过⼆次开发来进⾏业务流程控制或⼀定程度上控制测试覆盖。
monkey 命令介绍adb shell -help 查看monkey命令介绍参数解析:1. -p 指定要进⾏monkey测试的包,如果不使⽤参数,则会随机选择⼀个应⽤进⾏测试2. -c 指定activity的category类别3. -v 指定⽇志级别 -v level1 -v -v level2 -v -v -v level34. -s 伪随机的事件seed值,可以通过-s参数复现问题,不指定就会随机⽣成5. --ignore-crashes 忽略异常崩溃6. --ignore-timeouts 忽略ANR7. --ignore-native-crashes 忽略native层代码的崩溃8. --ignore-security-exceptions 忽略⼀些许可错误,⽐如证书许可,⽹络许可9. --monitor-native-crashes 是否监视并报告native层发送的崩溃代码10. --kill-procress-after-error ⽤于在发送错误后杀死进程11. --hprof 设置后,在Monkey事件序列之前和之后⽴即⽣产分析报告,保存于data/mic⽬录,不过将会⽣成⼤量⼏兆⽂件,谨慎使⽤12. --throttle 设置每个事件结束后延迟多少时间再继续下⼀个事件,降低cpu压⼒;如果不设置,事件与事件之间将不会延迟,事件将会尽快⽣成;⼀般设置300ms,因为⼈最快300ms左右⼀个动作13. --pct-touch 设置触摸事件的百分⽐,即⼿指对屏幕进⾏点击抬起(down-up)的动作14. --pct-motion 设置移动事件百分⽐,这种事件类型是由屏幕上某处的⼀个down事件-⼀系列伪随机的移动事件-⼀个up事件,即点击屏幕,然后直线运动,最后抬起这种运动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Monkey 测试指南
前言
Monkey。
顾名思义就是像只活泼的猴子,乱按乱跳乱来。
术语上来讲,就是产生各种各样的随机事件来对软件进行测试。
其优点缺点都是不可控性。
好处是脱离测试的习惯框架,多次的组合测试可以暴露出不少隐性的问题(就是把程序搞崩溃,哈哈);缺点则是无法得出具体的缺陷在哪,重现步骤如何等等的具体问题,往往我们得就是崩溃跟超时。
测试目的
检测该软件的稳定性、健壮性。
它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。
测试格式
基本语法如下:
$ adb shell monkey [options]
如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。
下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送1000个伪随机事件:
$ adb shell monkey -p -v number
$ monkey -p(package的意思)指定文件名-v(测试的次数和频率)number(次数)测试流程
通过简单的测试示例,初步了解并掌握Monkey测试的步骤。
注意,这里主要是使用adb命令进行安装和相关操作。
测试的具体参考步骤如下:
(1)首先,先准备了一个测试用的应用程序(apk文件)。
为了测试,这里选择了云菜单
下载好后,得到下图所示的apk文件。
(2)将apk文件复制到android sdk对应platform-tools的目录下。
例如,笔者的sdk路径为
D:\adt-bundle-windows-x86-20131030\sdk\platform-tools。
如图所示
(3)进行apk文件的安装(安装的前提是,已经启动并可以检测模拟器):有安装91助手或者豌豆的用户可以直接双击apk文件进行安装;也可以使用android下的adb命令进行安装(如下图所示,Success表示安装成功)。
adb命令下安装apk文件的命令为:adb install 文件名.apk。
(4)安装好后,会在模拟器上看到应用程序的启动图标
(5)安装好apk文件后,需要知道应用程序主Activity(第一个启动的Activity)所在的包名。
这时,我们可以使用adb shell命令查找到程序主Activity所在的包名,如下图所示。
(知道了apk的包名,我们也可以利用adb命令进行应用程序的卸载;卸载apk文件的命令为:
adb uninstall 包名)
(6)这里是最关键的一步,使用moneky命令进行自动化压力测试。
命令为:#monkey -p com.gewara -v 1000(参数说明:-p后跟着软件所在包名,-v后跟测试的次数)。
这里对该软件进行1000次的自动化测试,几分钟内即可以完成测试。
如图所示
(7)测试完毕,发现程序出错了。
程序出错,表明该软件的稳定性和健壮性还有待提高。
这时,可以打开Lotcat查看出错信息。
如图所示
PS:Lotcat的打开请参考monkey&monkeylunner环境部署说明文档V1.0.docx Monkey命令行可用的全部选项
PS:可以用来重现问题
约束限制
小结
通过定向,多方向多条件控制monkey。
可以得出比较全面的关于测试软件的质量。
笔者建议可以在软件测试开始前,使用少量的事件作为冒烟测试的一个附加项。
在功能测试完毕后可用大量事件,或者矢量时间对软件进行压力测试,确保软件的健壮性,稳定性。
时间:2014年1月23日17:26:03
作者:刘业勋。