monkeyrunnerAPI帮助文档

合集下载

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,拨号,挂断及⾳量控制键。

monkeyrunnerAPI帮助文档

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 简介说明文档的中英文对照

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学习

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教程

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常⽤命令详解使⽤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命令详解

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学习

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’)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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包(。

相关文档
最新文档