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

monkeyrunner录制脚本和回放

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使用方法和实例

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。

MonkeyRunner(猴子测试步骤)

MonkeyRunner(猴子测试步骤)

首先把安卓SDK的环境变量给配置好,这里就不再多解释,自己google然后将自己的安卓设备打开调试模式,USB连接至电脑,运行CMD,输入命令adb devices查看你的安卓设备的ID(ID后面写程序会调用),如下图所示:继续在这个命令提示框中输入 monkeyrunner,进入monkeyrunner的shell命令交互模式。

如图:进入shell命令交互模式后,首要一件事就是导入monkeyrunner所要使用的模块。

直接在shell命令下输入:from com.android.monkeyrunner importMonkeyRunner,MonkeyDevice回车这2步完成就可以就行monkeyrunner的测试了。

下面的一个例子是连接手机并且点击菜单按钮,之后截图保存(注:以下命令全部在CMD monkeyrunner环境下运行)第一:# 连接安卓设备,其中4d007e9a1b0050d1 是设备的ID 上面有提到通过abd devices 获得device = MonkeyRunner.waitForConnection(5,'4d007e9a1b0050d1')第二:#安装apk文件到这个设备device.installPackage('E:\Education - 136_8080.apk')安装成功以后会返回true第三:# sets a variable with the package's internal name(设置包名)package = 'cation'第四:# sets a variable with the name of an Activity in the package(设置activity) activity = 'cation.MainActivity'第五:# sets the name of the component to start(设置运行组件)runComponent = package + '/' + activity第六:# Runs the component(运行此组件)device.startActivity(component=runComponent)第七:# Presses the Menu button(按下菜单按钮,此时真机的菜单按钮会被按下)device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)第八:# Takes a screenshot(触发截图)result = device.takeSnapshot()第九:# Writes the screenshot to a file(保存截图)result.writeToFile('E:\Snapshot\edu.png','png')截图成功会返回true,如图注意保存截图的文件夹要变成可以状态才能截图成功不然会报异常:只读去掉截图成果:图:所有的语句可以写在一个python文件里面然后用命令monkeyrunner test.py 即可。

【推荐下载】android实用测试方法之Monkey与MonkeyRunner

【推荐下载】android实用测试方法之Monkey与MonkeyRunner

android 实用测试方法之Monkey 与MonkeyRunner 本人比较懒,但是,研究如何让人变懒,却很积极…最新版的android SDK 4.0 ,monkey 和monkeyRunner,变化很大…大到默认是运行失败的…囧,虽然,monkey 和monkeyrunner 目前有些不完善,但是,足以应付我们的使用需要.(最新的R15 已经解决了这个问题更新真快…)Android UI 测试懒人第一:胡乱的按键,交给电脑搞定有时候,我们要折腾一下程序,健壮不健壮,然后,找个上幼儿园的的弟弟/妹妹,把手机交给他/她,让他/她胡乱的按,看你的程序能不能接受这样的折腾,但是,我们身边不可能都有正太和萝莉,也不能保证他们拿到手机以后不是测试软件的健壮性,反而测试你的手机经不经摔,这与我们的期望差太远了…毕竟咱们是来软的不是来硬的…当然,这世界牛人一把把的,然后,google 公司考虑到我们的需要,把找个由某个牛人写的程序,集成到了比较新版本的SDK R8(即android 2.2 以后),然后,就有了下文monkey 的使用Monkey 的智力就是一个三岁小孩的水平,因此,使用起来也是非常简单,当然,也做不了什么复杂的东西adb shell monkey [options] event-count 这个是配置monkey 的设置,例如,指定启动那个包,不指定将会随机启动所有程序这个是让monkey 发送多少次事件详细的monkey 介绍,和options 的参数请查看developer.android/guide/developing/tools/monkey.html这里就不重复造轮子了…实例:我们验证程序在随机1000 次事件中,能不能正常运行下去adb shell monkey -p -vvv 1000 monkey1000.txt-v 为verbose 的缩写,就是详细输出事件等级,这个3 个v 就是输出等级1 至3 的所有事件,然后再使用管道命令将输出结果放到一个文本里面方便查看.接下来就是看你的程序能不能在这样的折腾下坚持下去了.。

APP测试之monkey测试

APP测试之monkey测试

monkey:andriod自带命令工具,可以用于测试应用或者系统的稳定性。

monkey与monkey runner的区别:monkey作为一个向待测的应用发送随机按键消息的测试工具,验证待测应用在这些随机的输入面前是否闪退或者崩溃。

monkey runner则接受一个明确的测试脚本(使用python语言编写)。

配置环境环境变量检查环境环境配置adbadb命令adb devices:查看连接中的设备adb shell:进入连接设备qq包名:com.tencent.mobileqqadb命令就是连接windows和安卓手机之间的一个桥梁monkey命令格式:monkey 参数伪随机事件数量参数:-p 包名例子:用monkey测试应用qq,并向其发送1000次随机按键消息monkey -p com.tencent.mobileqq 1000参数:-v 日志级别默认日志级别是0级,最高是2级日志级别Level 0示例:monkey -p com.tencent.mobileqq -v 1000说明:缺省值:仅提供启动提示、测试完成和最终结果等少量信息日志级别Level 1示例:monkey -p com.tencent.mobileqq -v -v 1000说明:提供较为详细的日志,包括每个发送到Activity的事件信息日志级别Level 2monkey -p com.tencent.mobileqq -v -v -v 1000说明:最详细的日志,包括了测试选中/未选中的Activity信息触控事件:触控是指在一点上先后有手指按下和抬起的事件(--pct-touch)例子:测试触控事件生成的百分比为100%monkey -vv --pct-touch 100 -p com.tencent.mobileqq 1000另外一种写法:monkey -p com.tencent.mobileqq --pct-touch 100 -v -v 1000滑动事件:滑动是指先按下一个位置,滑动一段距离然后再抬起手指的手势(--pct-motion) monkey -vv --pct-motion 100 -p com.tencent.mobileqq 1000另外一种写法:monkey -p com.tencent.mobileqq --pct-touch 100 -v -v 1000-s种子,给monkey内部使用的伪随机数生成器的种子,如果用相同的随机数种子重新执行monkey,则会生成相同的事件序列例子:日志输出adb shell monkey -s 123 -vv -p com.tencent.mobileqq 10000 > d:\1\aaa.logadb shell monkey -s 123 -vv -p com.tencent.mobileqq 10000 > d:\1\bbb.log另外一种写法:adb shell monkey -s 123 -p com.tencent.mobileqq -v -v 1000 >d:\1\ccc.log--throttle<毫秒>用于指定用户操作(即事件)的时延,单位是毫秒monkey -p com.tencent.mobileqq --throttle 100 100面试题:如何分析APP的日志1)程序无响应的情况:搜索关键字“ANR in”2)崩溃的情况1:搜索关键字“CRASH”3)崩溃的情况2:搜索关键字“Exception”4)内存溢出的情况:搜索关键字“OOM”5)测试成功的情况:搜索关键字“Monkey finished”2)常用APP命令:①adb --help②adb start-server③adb kill-server④adb devices⑤adb shell getprop ro.build.version.release⑥adb push⑦adb pull⑧adb logcat⑨adb logcat⑩adb shell11adb install12adb uninstall13adb shell am start面试题:用monkey测试APP你一般需要测试多长时间?答案:12小时命令之间设置间隔,然后用12小时/命令之间的时间间隔= 算出要执行的次数。

monkeyrunner的实战使用

monkeyrunner的实战使用

首先,明确一个概念1、MonkeyRunner:这个类提供了用于连接monkeyrunner和设备或模拟器的方法,它还提供了用于创建用户界面显示提供了方法。

2、MonkeyDevice:代表一个设备或模拟器。

这个类为安装和卸载包、开启Activity、发送按键和触摸事件、运行测试包等提供了方法。

3、MonkeyImage:这个类提供了捕捉屏幕的方法。

这个类为截图、将位图转换成各种格式、对比两个MonkeyImage对象、将image保存到文件等提供了方法。

使用monkeyrunner操作安卓程序一个完整的过程基本上是这样,先导入包,启动模拟器,然后用monkeyrunner 连接模拟器,然后用monkeydevice执行发送按键,激活等操作好的现在开始,首先打开cmd输入 emulator -avd test (PS: 打开模拟器)进入cmd,输入monkeyrunner(PS: 开始运行mokeyrunner)然后导入这两个个包from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice 连接安卓模拟器device=MonkeyRunner.waitForConnection()安装apk程序device.installPackage("../samples/test.apk")打开安装的这个程序device.startActivity(component="com.menubottom/.main_news") component里的参数是这个apk安卓程序的内部包地址,需要通过另一个工具抓取告诉安卓系统打开哪个程序打开一个cmd 输入ddms是这个应用程序的java包名点击回车后会显示安卓的监控日志工具然后我们现在在安卓模拟器点击进入我们安装的这个软件然后日志监控工具就会记录这个包名保存log打开log,查找CMP关键词查几次后就会找到上面那个包名想让monkeyrunner点击南京这个栏目,怎么写?点坐标我们就要确定南京那个栏目的坐标现在又要用到一个工具打开cmd,输入hierarchyviewer选择上面粗体字体显示的一行,然后点击“Inspect Screenshot”按钮,稍等一会,则会进入以下界面:然后我们通过这里可以看到南京的这个横纵坐标然后在monkeyrunner里写入这么一行自动点击南京device.touch(71,127,'DOWN_AND_UP')模拟器南京这个栏目就被自动点击monkeyrunner使用时对于激活应用程序的界面,需要知道包的位置,如下device.startActivity(component="com.menubottom/.main_news")此参数的获得可以此方法获取运行AVD后,点击tools目录下的ddms.bat连上DDMS,点击你要运行的APK,等LOG跑完后停止,在info里选择所有log,导出来,查找CMP关键字,搜寻几个cmp后,CMP后面就是你想要的包名移除apk命令device.removePackage('com.culiu.qqpurchase')。

monkeyrunner环境搭建教程

monkeyrunner环境搭建教程

monkeyrunner环境搭建教程一、需要工具:SDKJDKPython编译器Eclipse二、安装python环境变量设置:然后再输入你安装python的路径path :D:\Python27;在cmd中输入python检验python编译器是否安装好三、安装jdk环境变量设置,这里需要设置三个环境变量值:JAVA_HOME、path、classpath:1、新建系统变量,变量名为JAVA_HOME,变量值填JDK安装的最终路径JAVA_HOME :D:\Program Files\Java\jdk1.7.0_67;2、PATH :;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin3、在系统变量里点击新建变量名填写CLASSPATHCLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (前面有一个"."不能忘)然后在cmd中输入java和javac检查是否安装好输入javac,按回车出现以下画面,则表示设置成功四、安装SDK1、环境变镜变量设置,在系统变量里找到Path选中,在变量值里加入androidSDK中platform-tools和tools的目录路径Path :E:\android-sdk-windows\tools;E:\android-sdk-windows\platform-tools;2、在系统变量新建android_homeANDROID_HOME :E:\android-sdk-windows;输入adb devices验证是否安装成功五、安装Eclipse第一步:先安装Eclipse安卓Pydev插件Help→Install New Software→Add 然后弹出Add Repository窗口name随便自己写location:/updates/(如果不行就换成https)然后选择:PyDev(Pydev fo Eclipse)→finish 下一步直到完成就好了验证是否安装成功window→preferences→PyDev(有PyDev选项就表示安装成功了)第二步:安装python Interpreterswindow→preferences→PyDev→Interpreters→python Interpreters→NEW路径选择你的Python.exe,点击OK(上面的红色提示是因为我之前已经设置OK的,因为要截图需要再次输入了路径,初次设置是没有上面这个红色提示的,所以初次设置的同学看不到这个上面的红色提示是正确的)最终设置完的结果是这样的补充说明:如果Python版本大于3,则要设置Encoding格式,设置步骤如下:General->Editors->Text Editors->Spelling,Encoding改成Other:UTF-8General->Workspace,Text file encoding改成Other:UTF-8环境安装完毕,随便写个程序跑一下试试第三步:安装Jython Interpreters这个时候不要急于去安装Jython的Interpreter,因为按照我的经验,这时在安装的过程中我们会碰到以下的错误:"Error:Python stdlib not found or stdlib found without .py files"•Step 1: 找到Jython解析器的Jar包并解压(该jar包应该可以在你的SDK\tools\lib 下面找到,如果找不到,可以先使用jython_installer-2.2.1.jar安装包安装一下(下载地址:/s/1dDkBUKT),可以选择安装在D盘下,然后找到刚才安装生成的文件夹,将整个文件夹copy到你的SDK\tools\lib的目录下,如我的copy 路径:E:\android-sdk-windows\tools\lib,)最终结果是这个样子的Step 2: 然后把jython2.2.1文件夹下面的Lib文件拷贝到与Jython解析器Jar包同一层目录下(注意这一步很重要)最终复制结果是这个样子的Stpe3:window→preferences→PyDev→Interpreters→Jython Interpreters→NEW,然后点击OK(上面的红色提示是因为我之前设置OK的,因为要截图需要再次输入了路径,初次设置是没有上面这个红色提示的,所以初次设置的同学看不到这个上面的红色提示是正确的)最终设置完成是这样的点击Ok完成PyDev的Jython配置六、MonkeyRunner开发环境配置现在为止我们已经配置好了Jython的开发环境了,我们已经可以创建一个Jython的项目了。

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自动化测试,如果没有真机,自行安装虚拟模拟器。

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 之间有空格)。

  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已经执行成功。

相关文档
最新文档