monkeyrunnerAPI帮助文档
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,拨号,挂断及⾳量控制键。
monkeyrunnerAPI帮助文档
Monkeyrunner API帮助文档1、com.android.monkeyrunner.MonkeyRunner.alert当前脚本的运行过程中显示警告对话框。
对话框是模态,因此脚本停止,直到用户关闭对话框。
参数:消息- 消息显示在对话框。
标题- 对话框的标题。
默认值是“提醒”。
okTitle - 使用对话框中的按钮的文本。
默认值是“OK”。
返回:返回任何内容。
2、com.android.monkeyrunner.MonkeyDevice.broadcastIntent发送一个广播设备的意图。
参数:URI - 意图的URI。
行动- 该行动的意图。
数据- 数据的URI意图的mimetype - mime类型的意图。
类别- 迭代的意图类别名称。
演员- 一个额外的字典添加到意图。
这些额外的类型推断的值的Python类型。
组件- 组件的意图。
标志- 一个迭代的标志为Intent.All参数是可选的。
每个参数的默认值是null。
(见android.content.Context.sendBroadcast(意向))返回:返回任何内容。
3、com.android.monkeyrunner.MonkeyRunner.choice显示一个选择对话框,允许用户选择从一个单一的项目,一个项目清单。
参数:消息- 提示信息显示在对话框。
选择- 一个可迭代的Python类型的选择列表显示标题- 对话框的标题。
默认的是“输入”返回:所选项目的抵消了Iterable基于0的数字。
4、com.android.monkeyrunner.MonkeyImage.convertToBytes转换成一个特定格式的MonkeyImage作为一个字符串返回结果。
使用此获得rawpixels在一个特定的格式。
字符串输出是有更好的表现。
参数:格式- 目标格式(例如,“PNG便携式网络图形格式)。
默认为PNG。
返回:一个String生成的图像。
monkeyrunner 简介说明文档的中英文对照
The monkeyrunner tool provides an API for writing programs that control an Android device or emulator from outside of Android code. With monkeyrunner, you can write a Python program that installs an Android application or test package, runs it, sends keystrokes to it, takes screenshots of its user interface, and stores screenshots on the workstation. The monkeyrunner tool is primarily designed to test applications and devices at the functional/framework level and for running unit test suites, but you are free to use it for other purposes.译文:monkeyrunner工具从外部代码为用来控制Android设备或模拟器的程序编写提供一个API。
通过monkeyrunner ,你可以编写一个Python程序:安装android 应用或者测试程序包、运行程序、发送键盘指令到程序、给程序界面截图、保存截图到工作站。
monkeyrunner工具最初是设计用于在功能/框架层次测试应用和设备和执行单元套件测试的,但是你也可以自由地用于其他目的。
The monkeyrunner tool is not related to the UI/Application Exerciser Monkey, also known as the monkey tool. The monkey tool runs in an adb shell directly on the device or emulator and generates pseudo-random streams of user and system events. In comparison, the monkeyrunner tool controls devices and emulators from a workstation by sending specific commands and events from an API.译文:monkeyrunner工具和UI/Application Exerciser Monkey(—也被称为monkey工具)是不相关的。
android自动化测试monkeyrunner学习
monkeyrunner自动化测试简介概述monkeyrunner工具提供一个API来控制Android设备。
可以写一个python脚本来安装应用,运行应用,发送键值,截图。
monkeyrunner对python进行了封装,加入了一些针对Android设备的类。
可以完全用python脚本来实现这些功能。
monkeyrunner工具的使用:monkeyrunner工具有三个类:1.MonkeyDevice2.MonkeyImage3.MonkeyRunnerMonkeyDevice:可以实现应用安装、卸载,按键、触击、拖拽,Activity的启动,输入等操作。
按键:press(‘按键值’, 动作)按键值为Andriod键值表中有的值:/reference/android/view/KeyEvent.html动作:DOWN, UP, DOWN_AND_UP。
大部分时间用DOWN_AND_UP来模拟按键、松手的过程。
比如要进行一个返回键操作:device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)手指触击:touch(x坐标,y坐标,动作)这里的坐标值要通过hierarchyviewer工具来获取,动作同上。
拖拽/滑动:drag((x, y),(x, y),持续时间,轨迹点)第一组是起始坐标,第二组终点坐标。
这里的坐标值要通过hierarchyviewer工具来获取,轨迹点类似采样。
shell:shell(‘string’)这里可以输入adb shell命令,是对monkeyrunner的有效拓展,利用shell方法,可以进行am操作。
启动Activity:startActivity(‘string’)MonkeyDevice的其他方法参照google官方。
MonkeyRunner:这里只介绍延时操作sleep(float seconds)MonkeyRunner.sleep(5.0) /延时5秒钟,再继续进行后续操作。
monkeyRunner教程
Android自动测试之monkeyrunner工具monkeyrunner工具前言:最近开始研究Android自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、Monkeyrunner、benchmark、其它test tool 等等。
因接触时间很短,很多地方有不足之处,希望能和大家多多交流。
一、什么是monkeyrunnermonkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。
通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。
monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。
二、monkeyrunner工具同Monkey工具的差别Monkey:Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流。
monkeyrunner:monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。
三、monkeyrunner的测试类型1、多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。
您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。
您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。
2、功能测试:monkeyrunner可以为一个应用自动贯彻一次功能测试。
您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。
3、回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
Monkey常用命令详解
Monkey常⽤命令详解使⽤monkey help 命令查看命令参数,如下:C:\Users\chenfenping>adb shell monkey -helpusage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...][-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...][--ignore-crashes] [--ignore-timeouts][--ignore-security-exceptions][--monitor-native-crashes] [--ignore-native-crashes][--kill-process-after-error] [--hprof][--pct-touch PERCENT] [--pct-motion PERCENT][--pct-trackball PERCENT] [--pct-syskeys PERCENT][--pct-nav PERCENT] [--pct-majornav PERCENT][--pct-appswitch PERCENT] [--pct-flip PERCENT][--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT][--pkg-blacklist-file PACKAGE_BLACKLIST_FILE][--pkg-whitelist-file PACKAGE_WHITELIST_FILE][--wait-dbg] [--dbg-no-events][--setup scriptfile] [-f scriptfile [-f scriptfile] ...][--port port][-s SEED] [-v [-v] ...][--throttle MILLISEC] [--randomize-throttle][--profile-wait MILLISEC][--device-sleep-time MILLISEC][--randomize-script][--script-log][--bugreport][--periodic-bugreport]COUNT1 参数: -p⽤于约束限制,⽤此参数指定⼀个或多个包(Package,即App)。
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事件,即点击屏幕,然后直线运动,最后抬起这种运动。
MonkeyRunner学习
MonkeyRunner学习1、打开MonkeyRunner:输入“monkeyrunner“2、导入服务:from com.android.MonkeyRunner import MonkeyRunner,MonekyDevice,MonkeyImage3、连接设备:device = MonekyRunner.waitForConnection()4、截图保存:result=device.takeSnapshot()result. writeToFile(“./image.png”,”png”)5、滑动屏幕:for i in range(1,3):device.drag((200,300),( 100,300) ,0.1,1)MonkeyRunner.sleep(1)说明:这是Python中的一个for循环,意思是遍历1~3(不含3)所有整数,遍历做什么呢?第二行就是我们要做的事情,“drag”就是拖动事件指令,后面的括号里就是参考,表示从第一个坐标开始到一个坐标结束,0.1表示所用时间,最后的1可以理解为采样点,默认为10,这里设置的是1,在本实例中1和10区别不大。
第三行就是等待的意思,滑动一次后等待1秒再继续。
在下方加入截图部分:result=device.takeSnapshot()result. writeToFile (“./image.png”,”png”)6、Python打印安装成功和失败device.installPackage(“/路径/XXX.apk”)device.unstallPackage(“com.XX.XX.XX(包名)”)print(“安装失败”)device.installPackage(“ApiDemos.apk”)print(“安装成功”)7、启动一个Activitydevice.startActivity(component=’com.android.Api/com.android.Api.XXX’)8、延时(秒):MonkeyRunner.sleep(3)9、触击屏幕:device.touch(507,72,”DOWN_AND_UP”)10、执行adb shell命令:device.shell(“input text goup01”)11、发送按键指令:按下HOME键device.press('KEYCODE_HOME','DOWN_AND_UP')按下BACK键device.press('KEYCODE_BACK','DOWN_AND_UP')按下下导航键device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')按下上导航键device.press('KEYCODE_DPAD_UP','DOWN_AND_UP')按下OK键device.press('KEYCODE_DPAD_CENTER','DOWN_AND_UP')12、按键列表:home键:KEYCODE_HOME back键:KEYCODE_BACKsend键:KEYCODE_CALL end键:KEYCODE_ENDCALL上导航键:KEYCODE_DPAD_UP 下导航键:KEYCODE_DPAD_DOWN左导航:KEYCODE_DPAD_LEFT 右导航键:KEYCODE_DPAD_RIGHTok键:KEYCODE_DPAD_CENTER 上音量键:KEYCODE_VOLUME_UP下音量键:KEYCODE_VOLUME_DOWN power键:KEYCODE_POWERcamera键:KEYCODE_CAMERA menu键:KEYCODE_MENU13、脚本编写:#Imports the monkeyrunner modules used by this programfrom com.android.MonkeyRunner import MonkeyRunner,MonekyDevice,MonkeyImage #Connect to the current devicedevice = MonkeyRunner.waitForConnection()#Takes a screenshotresult=device.takeSnapshot()#Write the screenshot to a fileresult.writeToFile(‘./Image.png’,’png’)#Drag screenfor I in range(1,3):device.drag((200,300),(100,300),0.1,1)MonkeyRunner.sleep(1)#Take a screenshotresult = device.takeSnapshot()result.writeToFile(‘./Image1.png’,’png’)。
monkeyrunner录制脚本和回放
Monkeyrunner关于使用录制、生成脚本、编译脚本及执行脚本。
1.首先在计算机上下载和安装SDK、python
android-sdk_r16-windows.zip
python-2.7.3.msi
、
2.将recorder.py文件放置SDK文件夹里tools文件夹下
recorder.py
B连接手机,手机端,开启USB调试,并在计算机DOS中输入adb devices命令,查看并保证手机设备已被识别
4.在计算机DOS下cd至SDK中tools文件夹所在的目录
注:目录中不能含有中文字样,要全英文
5.执行monkeyrunner recorder.py命令,即可开启手机在计算机端的录制操作
弹出以上图片即表示成功,此时可用鼠标点击桌面执行操作,手机端亦会同步显示。
且右侧会自动生成相关脚本
6.录制完后,将生成的脚本导出只tools下,并以.py(r如:a.py)的文件形式保存
7.关闭当前DOS,重新开启DOS并切换到tools目录
8.执行monkeyrunner monkey_playback.py XX(保存的脚本名).py,即可自动执行录制中的操作
monkey_playback.py
以上相关附件,均属本人自行奉送,亦可通过网站搜索下载使用。
Monkeyrunner使用方法和实例
目前android SDK里自带的现成的测试工具有monkey 和monkeyrunner两个。
大家别看这俩兄弟名字相像,但其实是完完全全不同的两个工具,应用在不同的测试领域。
总的来说,monkey主要应用在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义发送的次数,以此观察被测应用程序的稳定性和可靠性,应用起来也比较简单,记住那几个命令就行了。
而monkeyrunner呢,相比之下会强大一些,它主要可应用于功能测试,回归测试,并且可以自定义测试扩展,灵活性较强,并且测试人员可以完全控制。
本篇乃本人学习monkeyrunner时笔记,查看网络中的资料并经本人测试而出,由于本人刚接触,所以本篇内容不免肤浅,高手们请绕走~在测试本人以下实例时,请自行搭建Android环境。
一、打开模拟器运行monkeyrunner之前必须先运行相应的模拟器,不然monkeyrunner无法连接设备。
用Elipse打开Android模拟器或在CMD中用Android命令打开模拟器。
这里重点讲一下在CMD中用Android命令打开模拟器命令:emulator -avd test(注意:test为虚拟设备的名称——AVD的全称为:Android Virtual Device,就是Android运行的虚拟设备,如下图所示:)上面命令中的test是模拟器名称。
使用时需要改成实际名字。
如果正常,模拟器应该可以启动起来了。
如果执行的结果出现以下错误内容:[plain]view plaincopy1.PANIC: Could not open: C:\Documents and Settings\sAdministrator\.android/avd/test.ini如下图所示:原因在于你的环境变量缺少配置。
请在“系统变量”中添加“ANDROID_SDK_HOME”,设置其值为“C:\Documents and Settings\Administrator”(注意:这里的值不能为C:\Documents and Settings\Administrator\.android),如下图所示:确定后,关闭CMD窗口,重新打开CMD。
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一.什么是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即可。
monkey命令
monkey命令前⾔Monkey是 Android SDK 提供的⼀个命令⾏⼯具,是 Android ⾃动化测试的⼀种⼿段。
Monkey 命令通过向安卓设备/安卓模拟器发送伪随机的⽤户事件流(如按键输⼊、触摸屏输⼊、⼿势输⼊等)。
对Android APP做稳定性(压⼒)测试。
【主要是为了测试app是否存在⽆响应和崩溃闪退等异常情况。
】等产品处于稳定状态,没有太多BUG后,⼀般使⽤monkey命令去测试产品的稳定性、健壮性(是否会发⽣闪退、崩溃和⽆响应等问题),实现对正在开发的安卓应⽤程序进⾏压⼒测试和稳定性测试。
获取测试⽇志的ANR、CRASH、Exception信息,提供给开发⼈员分析和定位问题。
【⼀般⼀次Monkey测试中0 ANR 、0 CRASH是测试标准】Monkey测试是⼀种为了测试软件的稳定性、健壮性的快速有效的⽅法。
Monkey 简介①Monkey 就是Android SDK中附带的⼀个命令⾏⼯具,可以运⾏在Android模拟器⾥或实际的Android设备中。
②Monkey向系统发送伪随机的⽤户事件流(如按键输⼊、触摸屏输⼊、⼿势输⼊等),实现对正在开发的应⽤程序进⾏压⼒测试。
③Monkey测试是⼀种为了测试软件的稳定性、健壮性的快速有效的⽅法。
④Monkey⽤于进⾏压⼒测试。
开发⼈员可以结合Monkey打印的⽇志和系统打印的⽇志,分析测试中的问题。
Monkey的特点①Monkey 程序是由 Android 系统⾃带,使⽤ Java 语⾔写成。
在Android⽂件系统中的存放路径是/system/framework/monkey.jar。
②Monkey.jar程序是由⼀个名为“monkey”的Shell脚本来启动执⾏,shell脚本在Android⽂件系统中的存放路径是/system/bin/monkey。
总结:通过①②说明monkey可以直接通过打包进测试⼯具中,可以被测试⼈员直接使⽤。
monkey基本命令
monkey基本命令Monkey是一种测试工具,被广泛用于自动化测试领域。
它可以模拟用户的操作,例如点击、滑动、输入等,以测试移动应用程序的稳定性和性能。
本文将介绍Monkey的基本命令及其使用方法,帮助读者了解如何使用Monkey进行自动化测试。
Monkey是Android平台上的一种命令行工具,可以通过ADB (Android Debug Bridge)连接到设备或模拟器,并模拟用户操作。
Monkey的基本命令是"adb shell monkey",其后可以跟上一系列参数来指定测试的次数、包名、事件百分比等。
下面将详细介绍一些常用的Monkey命令。
1. 基本命令- "adb shell monkey -p -v 500":这条命令表示以包名为""的应用为测试对象,执行500个事件。
- "adb shell monkey -p -v -v -v 500":通过增加"-v"参数的数量,可以增加输出的详细程度。
2. 事件百分比Monkey的事件百分比参数可以用来指定不同类型事件的触发概率。
例如,"-pct-touch"表示触摸事件的百分比,"-pct-motion"表示滑动事件的百分比,"-pct-trackball"表示轨迹球事件的百分比,"-pct-nav"表示导航事件的百分比,"-pct-majornav"表示重要导航事件的百分比,"-pct-syskeys"表示系统按键事件的百分比,"-pct-appswitch"表示应用切换事件的百分比,"-pct-anyevent"表示任意事件的百分比。
3. 包名过滤如果只想对某个特定的应用进行测试,可以使用"-p "参数来指定应用的包名。
monkey 命令参数
monkey 命令参数monkey命令参数概述:在软件开发过程中,为了保证应用程序的稳定性和可靠性,我们通常会进行各种测试。
而在Android开发中,我们可以使用monkey 工具来进行压力测试和随机事件测试。
monkey是Android SDK 中自带的一个命令行工具,可以模拟用户的随机操作,对应用程序进行压力测试。
一、介绍monkey是一个命令行工具,它可以模拟用户的随机操作,对应用程序进行压力测试。
它可以模拟按键操作、触摸事件、手势事件等,从而对应用程序的稳定性和可靠性进行测试。
二、使用方法1. 打开命令行窗口,进入到Android SDK的tools目录下;2. 输入monkey命令,后面跟上参数,即可执行monkey测试。
三、常用参数1. -p <包名>:指定要测试的应用程序的包名;2. -v <次数>:指定要执行的事件次数;3. --throttle <毫秒>:指定事件之间的延时时间;4. --pct-touch <百分比>:指定触摸事件的百分比;5. --pct-motion <百分比>:指定手势事件的百分比;6. --pct-nav <百分比>:指定导航事件的百分比;7. --pct-majornav <百分比>:指定主要导航事件的百分比;8. --pct-syskeys <百分比>:指定系统按键事件的百分比;9. --pct-appswitch <百分比>:指定应用程序切换事件的百分比;10. --pct-anyevent <百分比>:指定任意事件的百分比;11. --pct-pinchzoom <百分比>:指定缩放事件的百分比;12. --pct-permission <百分比>:指定权限请求事件的百分比;13. --pct-trackball <百分比>:指定轨迹球事件的百分比;14. --pct-rotation <百分比>:指定旋转事件的百分比;15. --ignore-crashes:忽略应用程序的崩溃;16. --ignore-timeouts:忽略超时错误;17. --ignore-security-exceptions:忽略安全异常;18. --kill-process-after-error:在错误发生后杀死进程。
monkeyrunner环境搭建及实例教程(3)
monkeyrunner环境搭建及实例教程(3)Monkeyrunner⼯具提供了⼀个API,使⽤此API写出的程序可以在Android代码之外控制Android设备和模拟器。
⼀、Monkeyrunner简介1.MOnkeyrunner相对Monkey区别1)Monkeyrunner⼯具在⼯作站上通过API定义的特定命令和事件控制设备或模拟器(可控)2)精确控制事件之间的事件3)可以进⾏:点触屏、拖拽、长按、键盘事件4)可以智能截图对⽐和判断5)回溯出详细具体的BUG路径2.Monkeyrunner优缺点1)能完全模拟⼈⼯所有操作2)有详细的API⽂档参考3)可以写出智能图像对⽐脚本4)⽀持java和Python两种语⾔脚本5)脚本移植性差3.Monkeyrunner脚本编写1)终端USB调成开发者模式2)电脑安装⼿机驱动⼆、Monkeyrunner环境搭建Monkeyrunner的环境搭建,需要安装以下⼯具:jdk、android sdk、python编译器。
1.jdk的安装与配置1)jdk下载地址下载完成后,默认安装即可。
2)jdk环境配置jdk安装成功后,计算机→属性→⾼级系统设置→⾼级→环境变量,在系统变量中,新建JAVA_HOME变量,变量值填写jdk的安装⽬录。
在系统变量中,编辑Path变量,在变量值最后输⼊%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输⼊;号再输⼊上⾯的代码)在系统变量中,新建CLASSPATH变量,变量值填写为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前⾯有⼀点)到此,系统变量配置完毕。
3)jdk环境检查检验jdk环境是否配置成功,则运⾏cmd,在cmd窗⼝中,输⼊ java -version (java 和 -version 之间有空格)。
Monkey的使用
Monkey的使⽤Windows monkey 环境搭建教程⼀、JDK环境搭建1、Monkey是什么?Monkey 是⼀个命令⾏⼯具,可以运⾏在 Android 模拟器⾥或真实设备中。
它可以向系统发送伪随机(pseudo-random)的⽤户事件流(如按键输⼊、触摸屏输⼊、⼿势输⼊等),可以对待测的⽬标应⽤或整个 Android 系统进⾏压⼒测试。
因此 Monkey 测试是⼀种为了测试软件的稳定性、健壮性的快速有效的⽅法2、Monkey在哪⾥?每⼀台android⼿机⾥⾯都有Monkey⼯具,但是我们是看不到的,因为它不是⼀个可视化的⼯具。
它不像wechat是可视化的,能打开,能执⾏⽤户操作,有图形界⾯,Monkey没有。
3、如何与Monkey进⾏通讯?我们需要借助ADB(Android Debug Bridge),安卓调试桥。
4、安装monkey环境前提条件:(1)安装java jdk(2)安装android sdk(3)安卓设备(真机/模拟器)1)安装jdk:官⽹下载链接地址:jdk下载地址:(这⼉需要注册各oracle账号【、Chen123456 】才能下载,注册只⽤校验邮箱尽管注册就是啦)配置jdk环境变量1、安装完JDK后配置环境变量计算机→系统属性→⾼级系统设置→⾼级→环境变量。
2、点击环境变量,系统变量→新建 JAVA_HOME 变量。
变量值填写jdk的安装⽬录(我的是 C:\Program Files\Java\jdk1.8.0_101)3、系统变量→寻找 Path 变量→编辑在变量值最后输⼊ %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输⼊;号再输⼊上⾯的代码)4、系统变量→新建 CLASSPATH 变量变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前⾯有⼀点)系统变量配置完毕5、检验是否配置成功运⾏cmd 输⼊ java -version (java 和 -version 之间有空格)若如图所⽰显⽰版本信息则说明安装和配置成功。
油猴脚本API
油猴脚本API参考这个类似油猴,但是⽕狐上的,有pdf可下Userscript Header⽤户脚本头,⽤于放在脚本开头的注释部分,代表了脚本本⾝的⼀些信息,如在哪些页⾯被调⽤,有哪些权限等@nameThe name of the script.脚本名称Internationalization is done by adding an appendix naming the locale.国际化是通过添加⼀个命名区域的附录来完成的。
(⽤于展⽰不同语⾔的脚本名称,见下⾯)Code:// @name A test// @name:de Ein Test@namespaceThe namespace of the script.脚本的命名空间@versionThe script version. This is used for the update check, in case the script is not installed from or TM has problems to retrieve the scripts meta data.脚本版本。
⽤于更新检查,以防不是从 或TM(即 tampermonkey 油猴本⾝)安装脚本的⽤户在检索脚本元数据时遇到问题。
@authorThe scripts author.脚本作者@descriptionA short significant description.简短⽽有意义的描述。
Internationalization is done by adding an appendix naming the locale.国际化是通过添加⼀个命名语⾔环境的附录来完成的(如下:)Code:// @description This userscript does wonderful things// @description:de Dieses Userscript tut wundervolle Dinge// @description:zh 中⽂的描述内容@homepage, @homepageURL, @website and @source@icon, @iconURL and @defaulticonThe script icon in low res.低分辨率的脚本图标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Monkeyrunner API帮助文档1、com.android.monkeyrunner.MonkeyRunner.alert当前脚本的运行过程中显示警告对话框。
对话框是模态,因此脚本停止,直到用户关闭对话框。
参数:消息- 消息显示在对话框。
标题- 对话框的标题。
默认值是“提醒”。
okTitle - 使用对话框中的按钮的文本。
默认值是“OK”。
返回:返回任何内容。
2、com.android.monkeyrunner.MonkeyDevice.broadcastIntent发送一个广播设备的意图。
参数:URI - 意图的URI。
行动- 该行动的意图。
数据- 数据的URI意图的mimetype - mime类型的意图。
类别- 迭代的意图类别名称。
演员- 一个额外的字典添加到意图。
这些额外的类型推断的值的Python类型。
组件- 组件的意图。
标志- 一个迭代的标志为Intent.All参数是可选的。
每个参数的默认值是null。
(见android.content.Context.sendBroadcast(意向))返回:返回任何内容。
3、com.android.monkeyrunner.MonkeyRunner.choice显示一个选择对话框,允许用户选择从一个单一的项目,一个项目清单。
参数:消息- 提示信息显示在对话框。
选择- 一个可迭代的Python类型的选择列表显示标题- 对话框的标题。
默认的是“输入”返回:所选项目的抵消了Iterable基于0的数字。
4、com.android.monkeyrunner.MonkeyImage.convertToBytes转换成一个特定格式的MonkeyImage作为一个字符串返回结果。
使用此获得rawpixels在一个特定的格式。
字符串输出是有更好的表现。
参数:格式- 目标格式(例如,“PNG便携式网络图形格式)。
默认为PNG。
返回:一个String生成的图像。
5、com.android.monkeyrunner.MonkeyDevice.drag模拟设备屏幕上拖动(触摸,持有和移动)。
@com.android.monkeyrunner.doc.MonkeyRunnerExported(doc="Simulates dragging (touch, hold, and move) on the device screen.",args={"start","end","duration","steps"},argDocs={"The starting point for the drag (a tuple (x,y) in pixels)","The end point for the drag (a tuple (x,y) in pixels","Duration of the drag in seconds (default is 1.0 seconds)","The number of steps to take when interpolating points. (default is 10)"})参数:开始- 拖动起点(以像素为单位元组(X,Y))结束- 阻力终点(以像素为单位元组(X,Y)时间- 在几秒钟内拖时间(默认为1.0秒)步骤- 插值点时要采取的步骤。
(默认是10)返回:返回任何内容。
6、com.android.monkeyrunner.MonkeyView.getAccessibilityIds返回当前视图的辅助IDS返回:视图的辅助IDS作为一个整数列表7、com.android.monkeyrunner.MonkeyRect.getCenter返回一个两个项目清单,其中包含矩形的中心的x和y的值返回:该中心作为一个整数的两个项目清单坐标8、com.android.monkeyrunner.MonkeyView.getChecked获取视图的选中状态返回:一个布尔值,该项目是否被选中或不9、com.android.monkeyrunner.MonkeyView.getChildren返回当前视图的孩子们返回:认为儿童MonkeyView对象名单10、com.android.monkeyrunner.MonkeyView.getEnabled返回启用状态的看法。
返回:作为一个布尔启用状态11、com.android.monkeyrunner.MonkeyView.getFocused视图返回集中状态返回:集中的状态作为一个布尔12、com.android.monkeyrunner.MonkeyRect.getHeight返回矩形的高度。
返回:作为一个整数的矩形的高度13、com.android.monkeyrunner.MonkeyDevice.getHierarchyViewer 获取设备HierarchyViewer对象。
返回一个HierarchyViewer对象14、com.android.monkeyrunner.MonkeyView.getLocation返回视图的位置在一个MonkeyRect形式返回:视图作为MonkeyRect对象的位置15、com.android.monkeyrunner.MonkeyView.getParent返回当前视图的父返回:视图的父作为MonkeyView对象16、com.android.monkeyrunner.MonkeyDevice.getProperty由于设备上的变量的名称,返回变量的值参数:关键- 变量的名称。
可用的名称在/guide/topics/testing/monkeyrunner.html上市。
返回:该变量的值17、com.android.monkeyrunner.MonkeyDevice.getPropertyList检索,可以查询的属性返回:返回任何内容。
18、com.android.monkeyrunner.MonkeyImage.getRawPixel一个单一的ARGB(alpha,红色,绿色,蓝色)像素位置的X,Y。
参数X和Y是0,表示在像素尺寸。
X增加的权利,对底部的Y增加。
此方法返回一个tuple。
参数:X - x偏移的像素Y - 像素的y偏移量返回的元组(一R,G,B)的像素。
tuple中的每个项目都有0-255范围内。
19、com.android.monkeyrunner.MonkeyImage.getRawPixelInt一个单一的ARGB(alpha,红色,绿色,蓝色)像素位置的X,Y。
参数X和Y是0,表示在像素尺寸。
X增加的权利,对底部的Y增加。
此方法返回一个整数。
参数:X - x偏移的像素Y - 像素的y偏移量返回:X,Y的无符号整数像素。
高阶8位是A,followedby 8位为R,G和8 8为B20、com.android.monkeyrunner.MonkeyDevice.getRootView获取当前根视图返回:根视图对象21、com.android.monkeyrunner.MonkeyView.getSelected返回视图的选中状态返回:作为一个布尔选中状态22、com.android.monkeyrunner.MonkeyImage.getSubImage复制图像的矩形区域。
参数:矩形- 一个元组(X,Y,W,H),说明该地区复制。
x和y指定上左边角落的区域。
w是该地区的像素宽度,h是它的高度。
返回:MonkeyImage对象代表复制的区域。
23、com.android.monkeyrunner.MonkeyDevice.getSystemProperty代名词的getProperty()参数:关键- 系统变量的名称。
返回:该变量的值。
24、com.android.monkeyrunner.MonkeyView.getText返回视图所载文本返回:在视图中的文本25、com.android.monkeyrunner.MonkeyDevice.getViewByAccessibilityIds获得指定的无障碍标识的看法。
参数:windowId - 视图来检索窗口的ID。
无障碍标识- 辅助视图来检索标识。
返回:具有指定ID的视图对象。
26、com.android.monkeyrunner.MonkeyDevice.getViewById取得具有指定id的观点。
参数:ID - ID的视图来检索。
返回:具有指定ID的视图对象。
27、com.android.monkeyrunner.MonkeyView.getViewClass返回视图类的名称。
返回:类名作为一个字符串的看法28、com.android.monkeyrunner.MonkeyDevice.getViewIdList检索当前应用程序的视图ID返回:返回任何内容。
29、com.android.monkeyrunner.MonkeyDevice.getViewsByText获得一个列表包含指定文本的意见。
参数:文本- 文本搜索返回:包含指定文本的视图对象的名单。
30、com.android.monkeyrunner.MonkeyRect.getWidth返回矩形的宽度。
返回:作为一个整数的矩形的宽度31、com.android.monkeyrunner.MonkeyRunner.help格式和API参考显示为MonkeyRunner的。
参数:格式- 输出所需的格式,无论是“文本”为纯文本或HTML标记的HTML“。
返回:一个字符串,其中包含所需格式的帮助文本。
32、com.android.monkeyrunner.MonkeyRunner.input显示一个对话框,接受输入。
对话框,模态,因此脚本停止,直到用户点击两个对话框按钮之一。
输入一个值,用户输入的值,并单击“确定”按钮。
要退出,而无需输入一个值对话框,用户点击“取消”按钮。
使用这种方法提供的参数来定制这些按钮的文本。
参数:消息- 提示信息显示在对话框。
初值- 提供给用户的初始值。
默认是一个空字符串)标题- 对话框的标题。
默认的是“输入”okTitle - 文本中使用对话框的确认按钮。
默认的是“OK”。
文本中使用对话框的“取消”按钮。
默认是“取消”。
cancelTitle -返回:测试用户,或没有输入,如果用户取消了输入;33、com.android.monkeyrunner.MonkeyDevice.installPackage设备安装到指定的Android包(。