monkeyRunner教程

合集下载

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工具)是不相关的。

monkeyrunner一个简单的教程

monkeyrunner一个简单的教程

Android自动测试之monkeyrunner工具mon keyrunner工具前言:最近开始研究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能够运行某个应用,并将其结果截屏与既定已知正确的结果截屏相较较,以此测试应用的稳固性。

几款Android应用自动化测试工具-博为峰网校

几款Android应用自动化测试工具-博为峰网校

几款Android应用自动化测试工具-博为峰网校几款Android 应用自动化测试工具简述:本文介绍几款流行的 Android应用自动化测试工具。

Monkey测试:随机测试,压力测试,运行在模拟器或实际设备中。

MonkeyRunner测试:操作简单,可录制测试脚本,可视化操作,主要生成坐标的自动化操作,移植性不强Robotium 测试Ronaorex 测试Appium 测试UI Automator 测试TestBird测试1、Monkey 测试Monkey 即猴子,Monkey 测试,就像一只猴子,在电脑面前,乱敲键盘在测试。

Monkey 测试主要用于Android 应用程序压力测试的小工具,主要目的就是为了测试app是否会Crash。

Monkey 测试原理:Monkey 是 Android 中的一个命令行工具,可以运行在模拟器里或实际设备中。

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

通常也称随机测试或者稳定性测试。

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

1 > Monkey 特征A. 测试的对象仅为应用程序包,有一定的局限性。

B. Monky 测试使用的事件流数据流是随机的,不能进行自定义。

C. 可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

D.Monkey 虽可根据一个指定的命令脚本发送按键消息,但其不支持条件判断,也不支持读取待测界面的信息来执行验证操作。

E.Monkey 运行在设备或模拟器上面,可以脱离PC运行,验证待测应用在这些随机性输入面前是否会闪退或者崩溃。

2 > Monkey 程序介绍① Monkey 程序由 Android 系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;② Monkey.jar 程序是由一个名为“ monkey ”的Shell脚本来启动执行,shell脚本在Android 文件系统中的存放路径是:/system/bin/monkey;③ Monkey 命令启动方式:a. 可以通过 PC 机 CMD 窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试b. 在PC上 adb shell进入Android系统,通过执行monkey {+命令参数}来进行Monkey 测试c. 在Android机或者模拟器上直接执行monkey命令,可以在Android机上安装Android终端模拟器④对特定APP包进行测试的命令为 adb shell monkey -p3 > 实例①测试前提条件a. 将手机恢复出厂设置b. 恢复出厂设置后,进入设置-->关于手机-->高级设置-->勾选‘保持唤醒状态’c. 在设置->安全中设置解锁图案以及PIN码d. 连接 adb toole. 手机开启后台log(*#*#3646633#*#*),开启main log,,mobile log和net log②测试步骤a. 使用USB线连接手机和电脑b. 在电脑中输入Monkey命令:adb shell monkey -p --throttle 380 -v -s3500 300000 >C:\monkey_log.txtc. 在Monkey结束以后查看它停留的界面并且做一些简单的测试,如拨打电话,发送信息等③测试结果Monkey的测试结果可以通过monkey_log.txt 查看,如果测试结果正常,在log最后一行会有monkey finished显示并且手机运行正常。

油猴插件的使用教程

油猴插件的使用教程

油猴插件的使用教程
油猴(Tampermonkey)是一款脚本管理插件,通过它能够方便地在浏览器上使用自定义用户脚本。

用户脚本可以修改网页的外观和行为,增加新功能,提高浏览体验。

下面是油猴插件的使用教程。

一、安装油猴插件
2.打开插件后,点击右上角图标,选择"新脚本"。

二、编写用户脚本
3. 编写脚本之前,你需要了解基本的JavaScript语法和DOM操作知识,这将帮助你更好地编写符合你需求的脚本;
三、安装和管理用户脚本
四、安装和使用用户脚本
1.在用户脚本的发布平台上找到自己需要的脚本;
2.打开脚本页面,在页面上会有脚本安装按钮;
3.点击安装按钮,脚本将自动安装到油猴插件中;
4.之后,在你打开脚本适用的页面时,脚本将会自动运行,实现你所期望的功能。

五、脚本调试和错误处理
1.当你的脚本没有按预期工作时,你可以开启浏览器的开发者工具来调试脚本;
2. 在脚本中插入`console.log`语句,可以输出一些调试信息,方便你查找问题所在;
3. 在脚本中处理错误,使用`try-catch`语句包裹可能抛出异常的代码块,以避免脚本完全终止执行。

六、在线资源
2. 用户脚本发布平台(如Greasy Fork)上有大量的用户脚本可以使用,你可以在这里找到你需要的脚本,或者发布你自己的脚本。

Android自动测试之Monkey工具

Android自动测试之Monkey工具

Android自动测试之Monkey工具Monkey工具前言:最近开始研究Android自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、Monkeyrunner、benchmark、其它test tool等等。

因接触时间很短,很多地方有不足之处,希望能和大家多多交流。

一、什么是MonkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。

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

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

二、Monkey的特征1、测试的对象仅为应用程序包,有一定的局限性。

2、Monky测试使用的事件流数据流是随机的,不能进行自定义。

3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

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

下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:$ adb shell monkey -p -v 500四、Monkey测试的一个实例通过这个实例,我们能理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。

Windows下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):1、通过eclipse启动一个Android的emulator2、在命令行中输入:adb devices查看设备连接情况C:\Documents and Settings\Administrator>adb devicesList of devices attachedemulator-5554 device3、在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面C:\Documents and Settings\Administrator>adb shell#4、查看data/data文件夹下的应用程序包。

Android自动化测试之使用java调用monkeyrunner

Android自动化测试之使用java调用monkeyrunner

Android自动化测试之使用java调用monkeyrunner 众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。

不过,最近发现可以用java调用monkeyrunner Api,用java 语言写测试脚本。

于是,就简单研究了一下。

这里做一些总结。

希望有对在研究的午饭可以有所用处。

开始时,搜素到一些零碎的教程,说使用java调用monkeyrunner时,需要导入android sdk tools路径下的lib里面的4个包:ddmlib.jar,guavalib.jar,monkeyrunner.jar,sdklib.jar.当然,这里建的是java工程,往工程里面导包就是通过:右键工程》properties》Java Build Path》Libraries》add External JARs》OK。

如下图:导入之后,我简单创建了一个测试类,然后添加一个MonkeyDevice对象,然后引入需要的包,结果发现报了错误,引用的资源找不到,根据看到的例子的提示说,需要手动添加AdbBackend.java文件到自己的工程中去。

于是,我就在搜了一下,在官网上下到了这个类(官网地址:/Open-Source/Android/android-core/platform-sdk/com/android/monkey runner/adb/Catalogadb.htm)添加进去,之后,MonkeyDevice问题解决了,但是,下一个问题出现了,AdbBackend的父类文件找不到,就是MonkeyRunnerBackend.java,然后我只好去搜这个文件,然后手动添加到自己的工程中(地址是:/Open-Source/Android/android-core/platform-sdk/com/android/monkey runner/MonkeyRunnerBackend.java.htm )。

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

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可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。

4、可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。

除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用Android Debug Bridge这样的Android工具。

四、运行monkeyrunner您可以直接使用一个代码文件运行monkeyrunner,抑或在交互式对话中输入monkeyrunner 语句。

不论使用哪种方式,您都需要调用SDK目录的tools子目录下的monkeyrunner命令。

如果您提供一个文件名作为运行参数,则monkeyrunner将视文件内容为Python程序,并加以运行;否则,它将提供一个交互对话环境。

monkeyrunner的命令语法为:monkeyrunner -plugin <plugin_jar> <program_filename> <program_options> 五、实例以sample中的ApiDemos为例,先将其生成ApiDemos.apk。

前提:已有device连接1、将ApiDemos.apk放在$Android_Root\tools下。

2、在$Android_Root\tools下新建一个monkeyrunnerprogram.py文件,里面内容为: 1# Imports the monkeyrunner modules used by this program 23from com.android.monkeyrunner import MonkeyRunner, Mon keyDevice, MonkeyImage45# Connects to the current device, returning a MonkeyDev ice object67device = MonkeyRunner.waitForConnection()89# Installs the Android package. Notice that this method returns a boolean, so you can test1011# to see if the installation worked.1213device.installPackage('./ApiDemos.apk')141516# Runs the component1718device.startActivity(component='com.example.android.ap is/.ApiDemos')192021# Presses the Menu button2223device.press('KEYCODE_MENU','DOWN_AND_UP')242526# Takes a screenshot2728result = device.takeSnapshot()293031# Writes the screenshot to a file3233result.writeToFile('./shot1.png','png')注意:SDK上的例子有些错误,不可直接复制,否则执行命令时会发生错误。

具体可与我的上面这段代码对照。

3、打开命令行转到Android_Root\tools目录下运行一下命令:monkeyrunner monkeyrunnerprogram.py110307 15:33:19.625:I [main] [com.android.monkeyrunner.MonkeyManager] Monkey Command: wake.110307 15:33:20.625:I [main] [com.android.monkeyrunner.MonkeyManager] Monkey Command: wake.110307 15:33:21.625:I [main] [com.android.monkeyrunner.MonkeyManager] Monkey Command: wake.110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] Error starting command: monkey --port 12345110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice]com.android.ddmlib.ShellCo mmandUnresponsiveException110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atcom.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408) 110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atcom.android.ddmlib.Device.executeShellCommand(Device.java:276)110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atcom.android.monkeyrunner.adb.AdbMonkeyDevice$1.run(AdbMonkeyDevice.java :89)110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atjava.util.concurrent.Executors$RunnableAdapter.call(UnknownSource)110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atjava.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atjava.util.concurrent.FutureTask.run(Unknown Source)110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atjava.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atjava.util.concurrent.ThreadPoolExecutor$Worker.run(UnknownSource)110307 15:33:22.718:S [pool-1-thread-1][com.android.monkeyrunner.adb.AdbMonkeyDevice] atng.Thread.run(UnknownSource)110307 15:33:57.437:I [main] [com.android.monkeyrunner.MonkeyManager] Monkey Command: press KEYCODE_MENU.110307 15:33:59.171:I [main] [com.android.monkeyrunner.MonkeyManager] Monkey Command: quit.注:里面exception的提示我们可以忽略,因为我们可以看见 Monkey Command: press KEYCODE_MENU已经执行成功。

相关文档
最新文档