Monkeyrunner按键

合集下载

monkeyrunner详细介绍以及编写简单的python脚本

monkeyrunner详细介绍以及编写简单的python脚本

MonkeyRunner:monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。

通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。

monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。

monkeyrunner工具与用户界面/应用程序测试工具,也称为monkey工具并无关联。

m onkey工具直接运行在设备或模拟器的adbshell中,生成用户或系统的伪随机事件流。

而monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。

1、MonkeyRunner的特性1)多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。

您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。

您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。

2)功能测试:monkeyrunner可以为一个应用自动贯彻一次功能测试。

您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。

3)回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。

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

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

您还可以向monkeyrunner API中添加您自己的类。

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

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

01熟悉AndroidStudio创建第一个项目9206815精品PPT课件

01熟悉AndroidStudio创建第一个项目9206815精品PPT课件
7、samples是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学
8、source是Android系统源码
9 、tools作为SDK根目录下的tools文件夹,这里包含了重要的工具,比如ddms用于启动Android 调试工具,比如logcat、屏幕截图和文件管理器,而draw9patch则是绘制android平台的可缩放 png图片的工具,sqlite3可以在PC上操作SQLite数据库,而monkeyrunner则是一个不错的压力 测试应用,模拟用户随机按键,mksdcard则是模拟器SD映像的创建工具,emulator是Android SDK模拟器主程序,不过从android 1.5开始,需要输入合适的参数才能启动模拟器,traceview作 为android平台上重要的调试工具。
4、extras, 额外的jar包之类的
5、platforms是每个平台的SDK真正的文件,里面会根据APILevel划分的SDK版本,
6 、platform-tools保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,Android123提示 ,这里和platforms目录中tools文件夹有些重复,主要是从android2.3开始这些工具被划分为通用 了。
}
创建genymotion模拟器
关注我
CSDN
优酷 于连林wcf520
QQ交流群 488929846
SDK目录简介
1、add-ons这里面保存着附加库,比如GoogleMaps
2、build-tools 编译
3、docs这里面是Android SDKAPI参考文档,所有的API都可以在这里查到。
└── app 运行module(模块)的根目录

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

Monkeyrunner使用方法和实例

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和Monkeyrunner

Monkey和Monkeyrunner

心得:Monkey :(压力测试,也就是极限性测试)不断发送伪随机事件,赋予adb 包操作;但缺点是不能自定义事件,扩展性不高。

Monkeyrunner:(功能测试,针对一次性操作)可自定义事件,扩展性高;缺点:暂时不支持中文输入;不适合处理连续的操作,一旦进入应用程,因为drag方法不稳定,跳转就需要用按钮来代替,这样无法模拟用户真实的操作。

UI一但改变,脚本无法使用。

因为基于UI的测试,对所有测试系统的稳定性要求比较高,如果系统或者软件非常容易崩溃,就会终端测试脚本,无法自动化。

在百度寻找资料时,曾看到有人这样比喻两者的区别,说:其实两者除了名称上差不多以外,根本就是两个不同的测试工具;Monkey是运行在设备或模拟器的adb shell 中生成或系统的伪随机事件,而monkeyrunner是在工作站上通过API定义的特定命令和事件控制设备或模拟器;Monkey测试,可针对全局,也可局部,执行简单,效果明显;monkeyrunner配置分为四大类:1.基本配置选项,如设置尝试的事件数量;2.运行约束选项,如设置只对单独的一个包进行测试;3.事件类型和频率;4.调试选项也有人说monkey就像孩子一样什么复杂事情都做不了,只能做简单的事情。

接下来我会记录monkey和monkeyrunner基本使用脚本Monkey1.进入cmd 命令2.cd sdk存放adb路径3.输入sdk\adb存放盘符4.adb shell monkey –p(设置包名,不设置为默认) com.luckir.homevwapp –v(默认保存信息) 500 (发送事件数量)5.回车就能执行了MonkeyRunner模拟器连接1.进入cmd 命令2.cd sdk\tool路径3.输入sdk\tool存放盘符4.Monkeyrunner5.进入shell命令6.#导入monkeyrunner 自带的三个类注:‘#’如同注释,不执行;区分大小写from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage#连接模拟器设备device = MonkeyRunner.waitForConneciton()#安装apk 注:/ 杠隔开,\杠会报错, 如果已安装可省略此步device.installPackage(‘apk存放路径+.apk’)#进入软件首页,(定义一个Activity事件)#(左边是运行软件名称/右边是软件名称.包名称)device.startActivity(‘com.luckir.homevwapp/com.luckir.homevwapp.Login’)#device.press 的两种方式(出现两种方式是因为后面的版本陆续添加了EasyMonkeyDevice类的原因,后面会讲到此类使用方法及说明#第一种是获取android系统自带控件的事件# 点击OK按钮,注:格式:‘前’随机,‘后’固定device.press(‘KEYCODE_DPAD_CENTER’, ‘DOWN_AND_UP’)#向右按钮device.press(‘KEYCODE_DPAD_RIGHT’,‘DOWN_AND_UP’) # 等(其它事件可在网上搜索查到)#第二种获取软件点击事件,格式如上一样#触摸点击OK按钮device.press(‘KEYCODE_DPAD_CENTER’,MonkeyDevice.DOWN_AND_UP) #触摸点击向右device.press(‘KEYCODE_DPAD_RIGHT’,MonkeyDevice.DOWN_AND_UP)手机连接手机连接只需更改连接设备方式,其它如上面一样#连接手机设备device = MonkeyRunner.waitForConnection(5,‘手机名’)//root过的手机才能执行#手机名获取方式1.如上所示进入adb 环境2.adb devices3.就可以看到如图所示:红圈显示的就是手机名(注:连接时,模拟器和手机缺一不可)EasyMonkeyDevice先下载ase.apk 文件,用adb 安装到模拟器或设备中EasyMonkeyDevice(emd) 类也是android自带类,此类的用法是获取ID来进行操作,此类是用在monkeyrunner 中。

AndroidSDK目录具体结构及Android源码的具体结构

AndroidSDK目录具体结构及Android源码的具体结构

AndroidSDK⽬录具体结构及Android源码的具体结构Android SDK⽬录具体结构1. add-ons:这⾥⾯保存着附加库,⽐如Google Maps,当然你如果安装了OphoneSDK,这⾥也会有⼀些类库在⾥⾯。

2. docs:这⾥⾯是Android SDK API参考⽂档,所有的API都可以在这⾥查到。

3. market_licensing:作为AndroidMarket版权保护组件,⼀般发布付费应⽤到电⼦市场可以⽤它来反盗版。

4. platforms:是每个平台的SDK真正的⽂件,⾥⾯会根据API Level划分的SDK版本,这⾥就以Android 2.2来说,进⼊后有⼀个android-8的⽂件夹,android-8进⼊后是Android 2.2 SDK的主要⽂件,其中ant为ant编译脚本,data保存着⼀些系统资源,images是模拟器映像⽂件,skins则是Android模拟器的⽪肤,templates是⼯程创建的默认模板,android.jar则是该版本的主要framework⽂件,tools⽬录⾥⾯包含了重要的编译⼯具,⽐如aapt、aidl、逆向调试⼯具dexdump和编译脚本dx。

5. platform-tools:保存着⼀些通⽤⼯具,⽐如adb、和aapt、aidl、dx等⽂件,这⾥和platforms⽬录中tools⽂件夹有些重复,主要是从android 2.3开始这些⼯具被划分为通⽤了。

6. samples:是Android SDK⾃带的默认⽰例⼯程,⾥⾯的apidemos强烈推荐初学者运⾏学习,对于SQLite数据库操作可以查看NotePad这个例⼦,对于游戏开发Snake、LunarLander都是不错的例⼦,对于Android主题开发Home则是android m5时代的主题设计原理。

7. tools:作为SDK根⽬录下的tools⽂件夹,这⾥包含了重要的⼯具,⽐如ddms⽤于启动Android调试⼯具,⽐如logcat、屏=幕截图和⽂件管理器,⽽draw9patch则是绘制android平台的可缩放png图⽚的⼯具,sqlite3可以在PC上操作SQLite数据库,⽽monkeyrunner则是⼀个不错的压⼒测试应⽤,模拟⽤户随机按键,mksdcard则是模拟器SD映像的创建⼯具,emulator是android模拟器主程序,不过从android1.5开始,需要输⼊合适的参数才能启动模拟器,traceview作为android平台上重要的调试⼯具。

Android手机自动化测试交流

Android手机自动化测试交流

Monkey runner测试实例
Monkey runner测试实例
运行python 脚本实现自动 化测试
Monkey runner测试实例
Monkey runner测试实例
运行 recorder获 取手机界例
Monkey runner测试实例
Android手机自动化 测试交流
2013年10月
+ 交流对象: – 手机端软件测试人员 + 交流目标: – 自动化测试背景 – 自动化工具介绍 – 自动化测试环境安装 – Monkey runner测试实例 + 本次交流将占用100分钟
自动化测试背景
软件测试是软件产品开发过程中的重要环节。
测试对于发现软件中缺陷,保障软件的质量具有重要意义。 手工测试和自动化测试是软件测试的两种基本手段,二者相互补充,不 可相互替代。
运行的结果截 图保存D:\文 件夹下
Monkey runner测试实例
使用Logcat 查看手机Log
Any Question ?
自动化测试环境安装
安装SDK(Software Development Kit, 即软件开发工具包 )
下载解压后,勿忘添加环境变量: Path = D:\android-sdk\tools
Monkey runner测试实例
Android自动化测试之Monkeyrunner的使用,是模拟人工的按键、触击屏幕、滑动屏幕、时延等操 作来控制Android手机来达到自动化测试的效果,对比monkey功能要强大的多!它支持,自己编写插件,控 制事件,随时截图,简而言之,任何你在模拟器/设备中能干的事情,MonkeyRunner都能干,而且还可以记录 和回放!!! 1. 启动一个Android系统的模拟器,即为命令中device 2. 将cmd命令定位到android SDK的路径下的tools目录 3. 输入命令"monkeyrunner",回车,进入Shell命令交互方式 导入monkeyrunner所要使用的模块: A.直接在shell命令中输入(然后回车): from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice,MonkeyImage B.输入device = MonkeyRunner.waitForConnection(),然后回车 4. 到这儿,基本上算是完成了,至于参考文档中提到的传入apk则是为了对具体 应用的控制;如果不传入则可以实时的控制模拟器,像您在玩自己的手机一样。 5. 确实,我们可以不必这样麻烦的一行行的输入命令,可以将这些指令都写到一 个Python文件中

常用的Android手机自动化测试工具

常用的Android手机自动化测试工具

常用的Android手机自动化测试工具Android手机是如今最多用户使用的智能手机,其相关的自动化测试工具也很受工程师的关注。

以下是店铺为你整理推荐常用的Android手机自动化测试工具,希望你喜欢。

Android手机自动化测试工具1、Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。

实际上该工具只能做程序做一些压力测试,由于测试事件和数据都是随机的,不能自定义,所以有很大的局限性。

2、MonkeyRunner也是Android SDK提供的测试工具。

严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。

缺点是脚本用Python来写,对测试人员来说要求较高,有比较大的学习成本。

3、Instrumentation是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许你对应用程序做更为复杂的测试,甚至是框架层面的。

通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。

Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能,你可以把Instrumentation看成一个类似Activity或者Service并且不带界面的组件,在程序运行期间监控你的主程序。

缺点是对测试人员来说编写代码能力要求较高,需要对Android相关知识有一定了解,还需要配置AndroidManifest.xml文件,不能跨多个App。

4、UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。

Uiautomator简要简介与使用

Uiautomator简要简介与使用

Android自动化工具UiAutomator简介一、Android自动化工具简介Android自动化测试主要分为Monkeyrunner、Rubotium、UiAutomator、Monkey等。

主要特点:1、Monkeyrunner:优点:操作最为简单,可以录制测试脚本,可视化操作;缺点:主要生成坐标的自动化操作,移植性不强,功能最为局限;2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大;缺点是针对APK操作,而且需要对APK重新签名(有工具),因此操作相对复杂;3、UiAutomator:优点:可以对所有操作进行自动化,操作简单;缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,但也够用了;4、Monkey:准确来说,这不算是自动化测试,因为其只能产生随机的事件,无法按照既定的步骤操作;由上面介绍可以有这样的结论:测试某个APK,可以选择Rubotium;测试过程可能涉及多个APK,选择UiAutomator;一些简单的测试,选择Monkeyrunner;本文档主要介绍UiAutomator的使用方法。

二、UiAutomator介绍Google在Android4.3发布时提供了一套新的UiAutomation框架来支持用户界面自动化测试,该框架通过运用已有的Accessibility APIs来模拟用户跟设备用户界面的交互,比如获取窗口界面控件和注入事件等。

UiAutomator,用于UI自动化测试,主要是仿真单击、滑动、输入文本等操作,而不用人为地进行操作,如果把一组反复进行的操作用UiAutomator实现,那么将大大提高效率。

但是UiAutomator使用范围非常有限,学习之后会知道,在UiAutomator中,每一个UI控件都是UiObject的对象,并没有提供获得控件对应控件类(android.widget.*)的接口。

Monkeyrunner操作测试

Monkeyrunner操作测试

Monkeyrunner操作手册一、自动化测试的原理a) 手机自动化测试的原理i. 手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。

完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。

ii. 关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。

iii. 而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义。

iv. 而有的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制)v. 自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。

b) MonkeyRunner自动化测试的原理MonkeyRunner工具提供了一个API,运用该API编写的程序可以不用通过Android代码来直接控制Android设置和模拟器,我们可以写一个Python程序对A ndroid应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在指定目录上等操作。

二、环境搭建a)连接手机: 1 Android需要Root;2 (不必须)安装RE,控制data/data挂载权限工具安装i.JDK安装:详细:JDK安装配置ii.SDK安装:建议拷贝SDK包,解压后配置SDK环境变量或安装详细:SDK 安装配置iii.安装apktool,下载apktool包,解压后,拷贝到SDK:..sdk\tools\下iv.Python编译器安装:1.下载python安装包2.双击打开python3.选择安装路径,点击NEXT,到安装完成4.配置python环境变量,在添加python安装地址v.安装完成后在cmd窗口下面分别输入java –version、python和monkeyrunner检查是否正确安装,如下图所示:至此环境安装就结束了三、Monkeyrunner:连接真机因为模拟器和真机的巨大差距,建议使用真机做Monkeyrunner自动化测试,如果没有真机,自行安装虚拟模拟器。

GTVrecord_replay使用说明

GTVrecord_replay使用说明

GTVrecord_replay脚本介绍-、原理介绍Monkeyrunenr提供的monkeyrecord录制脚本通过将设备映射到电脑中,用鼠标点击的方式录制脚本,速度慢,经常卡死,使用效果较差。

记录用户操作遥控器或者键盘key值序列,对这个key值序列解析回放,就是完成了录制回放过程。

还好有 getevent&sendevent。

getevent&sendevent 是android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。

getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等,下面是详细帮助getevent –helpUsage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-p] [-q] [-c count] [-r] [device] -t: show time stamps-n: don't print newlines-s: print switch states for given bits-S: print all switch states-v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32)-p: show possible events (errs, dev, name, pos. events)-q: quiet (clear verbosity mask)-c: print given number of events then exit-r: print rate events are receivedsendevent 发送事件adb shell sendevent [device] [type] [code] [value]在录制脚本中,Monkeyrunner调用getevent将产生的key值过滤出来,保存在一个文件中。

monkeyrunner环境搭建及实例教程(3)

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基本命令

monkey基本命令Monkey基本命令在移动应用开发中,Monkey是一个非常有用的工具,它可以帮助开发人员测试应用的稳定性和性能。

Monkey命令是一组用于控制Monkey工具的命令行指令,下面将介绍一些常用的Monkey基本命令。

1. adb命令adb命令是Android Debug Bridge的缩写,它是一种用于与Android设备通信的命令行工具。

在使用Monkey之前,首先需要通过adb命令连接到测试设备。

连接成功后,可以使用adb命令安装应用、启动应用等。

2. Monkey命令Monkey命令是控制Monkey工具的核心命令,它可以通过发送一系列的伪随机事件来模拟用户操作。

下面是一些常用的Monkey命令:- monkey -p package_name count:使用指定的包名启动应用,并执行指定次数的事件。

- monkey -p package_name --throttle milliseconds count:在执行事件之间添加延迟,以模拟真实用户的操作速度。

- monkey --pct-touch percentage:设置触摸事件的百分比。

- monkey --pct-motion percentage:设置滑动事件的百分比。

- monkey --pct-trackball percentage:设置轨迹球事件的百分比。

- monkey --pct-nav percentage:设置导航事件的百分比。

- monkey --pct-majornav percentage:设置主要导航事件的百分比。

- monkey --pct-syskeys percentage:设置系统按键事件的百分比。

- monkey --pct-appswitch percentage:设置应用切换事件的百分比。

- monkey --pct-anyevent percentage:设置任意事件的百分比。

Monkeyrunner简介

Monkeyrunner简介

Monkeyrunner简介Monkeyrunner工具是由Jython(使用Java语言实现的Python)写出来的,他提供了多个API接口,通过monkeyrunner API 可以编写Python程序来模拟操作,控制Android设备的应用程序测试稳定性,并通过截屏的方式记录出现的问题。

Monkeyrunner的位置Monkeyrunner位于PC端Android_SDK\tools路径下。

Monkeyrunner的功能多设备控制:monkeyrunner可以跨多个设备或模拟器,通过编程的方式连接所有的设备或模拟器,并运行设备上的应用程序。

功能测试:可以对Android应用进行自动化的测试。

可以通过模拟点击或轻触事件提供输入值,并以截屏的方式查看结果。

可扩展自动化:因为monkeyrunner是一个API工具包,所以可以开发一整套系统,包括基于Python模块和用于控制Android设备的程序。

Monkeyrunner和Monkey的区别Monkeyrunner和Monkey没有直接的关系。

都是Android_SDK提供的黑盒自动化测试用具。

相同之处就是都可以向被测应用程序发送点击和轻触事件,以及发送输入字段名称。

区别有以下几点:1、运行的位置不同Monkey 是Android系统自带,运行在移动设备或模拟器上,位置在/system/framework/monkey.jar;Monkeyrunner运行在PC上,位于Andriod_SDK\tools,需要通过服务器/客户端的的模式向设备或者模拟器上的android应用发送指令来执行测试。

2、运行原理不同因为运行的位置不同,所以他们实现的运行原理也是不一样的。

Monkey 的运行原理是,PC与Android设备连接后,通过 adb发送adb shell monkey 相关命令到adbd(adb的守护进程),然后adbd启动Android自带的monkey程序,执行命令中所携带的monkey UI测试指令,对待测应用进行测试。

android自动化压力测试图解教程monkey工具

android自动化压力测试图解教程monkey工具

Android自动化压力测试图解教程——Monkey工具一、Monkey简介至于Monkey的名字是有何而来的呢?这个没有去怎么考究,Monkey这个工具就是一个调皮的猴子,在App中乱按、乱摸、乱滚、乱跳。

Monkey测试是Android平台下自动化测试的一种快速有效的手段,通过Monkey工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。

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

二、Monkey的特性(1)测试的对象仅为应用程序包(apk包),有一定的局限性;(2)Monkey测试使用的事件流数据流是随机的,不能进行自定义;(3)可对MonkeyTest的对象、事件数量、类型、频率等进行设置。

虽然Monkey工具并不完善,但是足于应付应用程序的基本测试需要了。

如果需要功能更强大的测试工具的话,可以使用Monkey的进化版MonkeyRunner。

如果把Monkey看作是幼儿园的小孩,那么它的进化版MonkeyRunner就可以看作是一个初中生了。

它支持自定义插件,控制事件,随时截图,简而言之,任何你在模拟器/设备中能干的事情,MonkeyRunner都能干,而且还可以记录和回放。

在这里,就不详细介绍MonkeyRunner了,具体可以参考其官方文档或者其他相关资料。

注:MonkeyRunner官方文档的网址/guide/developing/tools/monk eyrunner_concepts.html三、Monkey的基本用法基本语法如下:$ adb shell monkey [options] 如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送1000个伪随机事件:$ adb shell monkey -p -v number$ monkey -p(package的意思)指定文件名-v(测试的次数和频率)number(次数)四、Monkey测试示例图解通过简单的测试示例,初步了解并掌握Monkey测试的步骤。

UIAutomator基础知识简介

UIAutomator基础知识简介

配置环境
注:以上环境配置的前提,均基于以下3个包。
新建工程
• 打开eclipse • 新建一个Java工程,包 • 增加build path • 新建测试类,继承成UiAutomatorTestCase • 新建测试用例,方法名必须test开头
新建工程
1. 打开eclipse->创建JAVA项目
3. 能获取手机的相关信息
UIDevice的功能
按键与KEYCODE使用
获取坐标与坐标点击
拖拽与滑动
旋转屏幕
灭屏与唤醒屏幕 截图与等待空闲 获取包名&开启通知栏&快速设置&获取布局文件
UIDevice的功能
1. 按键(home、back、enter、recentApp等) 2. 获取坐标与坐标点击 3. 灭屏与唤醒屏幕
UIAutomator基础知识分享
本次分享主要内容
• UIAutomator简介
• UIAutomator、Robotium、MonkeyRunner
• 配置环境、新建工程、编译及运行测试
• UIDevice、UiObject、UiCollection、UiScrollable、 UiSelector
UIAutomator简介
• 用户界面测试(UI)
UIAutomator简介
• UIAutomator
• The uiautomator testing framework lets you test your user interface (UI) efficiently by creating automated functional UI testcases that can be run against your app on one or more devices。(谷歌官网概述)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
参数1:超时时间,单位秒,浮点数。默认是无限期地等待。
参数2:串deviceid,制定的设备名称。默认为当前设备(手机优先,比如手机通过USB线连接到PC、其次为模拟器)。
默认连接:device=MonkeyRunner.waitForConnection()
参数连接:device=MonkeyRunner.waitForConnection(1.0, 'emulator-5554‘)
按下左导航键 device.press('KEYCODE_DPAD_LEFT', MonkeyDevice.DOWN_AND_UP)
按下右导航键 device.press('KEYCODE_DPAD_RIGHT', MonkeyDevice.DOWN_AND_UP)
相应的按键对应名称:
monkeyrunner主要包括三个模块:
1、MonkeyRunner:这个类提供了用于连接monkeyrunner和设备或模拟器的方法,它还提供了用于创建用户界面显示提供了方法。
2、MonkeyDevice:代表一个设备或模拟器。这个类为安装和卸载包、开启Activity、发送按键和触摸事件、运行测试包等提供了方法。
menu键:KEYCODE_MENU
home键:KEYCODE_HOME
back键:KEYCODE_BACK
search键:KEYCODE_SEARCH
call键:KEYCODE_CALL
end键:KEYCODE_ENDCALL
上音量键:KEYCODE_VOLUME_UP
下音量键:KEYCODE_VOLUME_DOWN
power键:KEYCODE_POWER
camera键:KEYCODE_CAMERA
adb_usb.ini
正在运行程序的休眠时间设置:
MonkeyRunner.sleep(秒数,浮点数)
捕获屏幕:
result=device.takeSnapshot()
result.writeToFile("D:/result.png",'png')
MonkeyImage.writeToFile(参数1:输出文件名,也可以包括路径,参数2:目标格式)
按下下导航键 device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP)
按下上导航键 device.press('KEYCODE_DPAD_UP', MonkeyDevice.DOWN_AND_UP)
按下OK键 device.press('KEYCODE_DPAD_CENTER', MonkeyDevice.DOWN_AND_UP)
3、MonkeyImage:这个类提供了捕捉屏幕的方法。这个类为截图、将位图转换成各种格式、对比两个MonkeyImage对象、将image保存到文件等提供了方法。
device=MonkeyRunner.waitForConnection()
#等等连接到设备,与模拟器连接,返回monkeydevice对象,代表连接的设备。没有报错的话说明连接成功。
写成功返回true,否则返回false
发送指定键的关键事件:
device.press(ห้องสมุดไป่ตู้数1:键码, 参数2:触摸事件类型)
参数1:常用键内容
按下HOME键 device.press('KEYCODE_HOME', MonkeyDevice.DOWN_AND_UP)
按下BACK键 device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)
相关文档
最新文档