Monkeyrunner入门示例
准备工作
1、安装Android SDK
2、熟悉MonkeyRunner的API(http://article.yeeyan.org/view/37503/164523)
3、一部Android手机或模拟器(手机与电脑连接,可以使用adb devices验证手机是否与电脑连接成功)
4、手机打开“指针位置”功能,可以方便我们定位坐标,打开方法:

SDK的安装过程我就不赘述了,直接开始一个简单的MonkeyRunner交互
1、 打开cmd,输入
monkeyrunner
,回车,出现如图情况,则进入了MonkeyRunner的交互对话环境
2、 输入
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
,回车,导入MonkeyRunner运行所需要的模块,没有报错则成功
3、 输入
device = MonkeyRunner.waitForConnection()
回车,使MonkeyRunner与设备进入连接状态,没有报错则成功
4、输入
device.installPackage(‘e:/hjclass.apk’)
,回车,安装放在e盘下的hjclass.apk文件到手机中,这个apk文件是我提前准备好的应用,若返回True则安装成功
5、 输入
device.startActivity(‘com.xx.xxx/.activity.xxxActivity’)
回车后可以直接看手机,如果APP被启动,则表示成功;
启动一个应用,其中(‘com.xx.xxx/.activity.xxxActivity’) 是APP的包名和启动Activity,这两个参数相当于Appium中需要用到的app-activity,可以问开发获取。也可以参考乙醇大大提供的方法:http://www.cnblogs.com/nbkhic/p/3806951.html
===分割线 以下均以我测试的应用为准,仅供大家参考 ====
6、 在启动APP后,我们可以看到第一个界面,我们获取当前界面“创建”按钮的坐标,如图,按住手机上的该按钮,可以在手机顶部看到该按钮的坐标为(454,702):

7、 回到cmd,我们输入
device.touch(454,702,’DOWN_AND_UP’)
回车后,就手机上就执行了点击的动作,我们可以看到手机上按钮被点击了。
8、 进入到了欢迎页,这时候我们需要进行滑动操作,就要获取滑动前的坐标、滑动后的坐标,以同样的方法,我们获取到滑动的初始坐标为(670,700),结束坐标为(200,700),因此我们在cmd中输入
device.drag((670,700),(200,700),3)
回车后观察手机,发现滑动成功。总共有三个欢迎页,所以该命令执行2次。
9、 到欢迎页最后一页,照旧,获得按钮的坐标,(400,1000),输入
device.touch(400,1000,’DOWN_AND_UP’)
进入到登录界面
10、 获取用户名栏上的坐标,坐标获取为(400,550),输入
device.touch(400,550,’DOWN_AND_UP’)
回车
11、 光标定位到用户名输入栏后,我们需要输入用户名,则在cmd中输入如下命令,
device.type(‘username’)
回车,type即输入文字
12、 用户名输入完,此时我们需要把光标定位到密码栏,获取到密码栏的坐标(430,430),输入
device.touch(430,430,’DOWN_AND_UP’)
13、 输入密码
device.type(‘password’)
回车
14、 照旧,获取登录按钮的坐标,并点击
到此为止,一个应用的安装、打开、滑动、输入、登录的操作全部操作完了。
我们回顾一遍,其实刚刚我们从交互开始,全部代码整合一遍,整合成一个Python文件,是可以一次性执行完的。
整理完后:
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
device = MonkeyRunner.waitForConnection()
device.installPackage('e:/hjclass.apk')
device.startActivity(‘com.xx.xxx/.activity.xxxActivity’)
device.touch(454,702,'DOWN_AND_UP')
device.drag((670,700),(200,700),3)
device.drag((670,700),(200,700),3)
device.touch(400,1000,'DOWN_AND_UP')
device.touch(400,550,'DOWN_AND_UP')
device.type('username')
device.touch(430,430,'DOWN_AND_UP')
device.type('password')
device.touch(400,800,'DOWN_AND_UP')
打开一个编辑器,并将你刚刚交互中所写的代码写到里面去,然后保存成一个Python文件,比如保存名字为monkeyrunner.py,放的e盘根目录。
执行文件的方法:
1、 打开cmd
2、 输入e: ,然后回车
3、 输入monkeyrunner e:/monkeyrunner.py ,回车后代码就开始执行了
上面就代码就是一个简单的用例了,但是如果直接上面这段代码的话,会出现一些问题,因为上面的代码中没有等待时间,也许点击确定后,还没等手机反应过来,就已经执行了下一句代码了,导致用例执行失败。
所以我们要对这个代码进行修改,在操作当中插入等待时间:
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage device = MonkeyRunner.waitForConnection()
device.installPackage('e:/hjclass.apk')
#启动应用,然后等待6秒钟
device.startActivity('com.hujiang.hjclass/.activity.SplashActivity')
MonkeyRunner.sleep(6)
#点击创建,然后等待2秒钟
device.touch(454,702,'DOWN_AND_UP')
MonkeyRunner.sleep(2)
#滑动欢迎页2次,滑动一次后等待2秒钟
device.drag((670,700),(200,700),3)
MonkeyRunner.sleep(2)
device.drag((670,700),(200,700),3)
MonkeyRunner.sleep(2)
#点击开始学习按钮,然后等待3两秒钟
device.touch(400,1000,'DOWN_AND_UP')
MonkeyRunner.sleep(3)
#点击用户名输入栏,等待1秒钟
device.touch(400,550,'DOWN_AND_UP')
MonkeyRunner.sleep(1)
#输入用户名,等待1秒钟
device.type('username')
MonkeyRunner.sleep(1)
#点击密码栏,等待1秒钟
device.touch(430,430,'DOWN_AND_UP')
MonkeyRunner.sleep(1)
#输入密码,等待1秒钟
device.type('password')
MonkeyRunner.sleep(1)
#点击登录按钮
device.touch(400,800,'DOWN_AND_UP') 【转载:http://www.testerhome.com/topics/1466】
Monkeyrunner入门示例的更多相关文章
- [WCF编程]1.WCF入门示例
一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...
- Maven入门示例(3):自动部署至外部Tomcat
Maven入门示例(3):自动部署至外部Tomcat 博客分类: maven 2012原创 Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...
- 1.【转】spring MVC入门示例(hello world demo)
1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- Spring MVC 入门示例讲解
在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...
- Couchbase之个人描述及入门示例
本文不打算抄袭官方或者引用他人对Couchbase的各种描述,仅仅是自己对它的一点理解(错误之处,敬请指出),并附上一个入门示例. ASP.NET Web项目(其他web开发平台也一样)应用规模小的时 ...
- Velocity魔法堂系列一:入门示例
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...
- OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit
第1章 OUYA游戏入门示例——StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...
- Springmvc整合tiles框架简单入门示例(maven)
Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...
随机推荐
- poj 1087.A Plug for UNIX (最大流)
网络流,关键在建图 建图思路在代码里 /* 最大流SAP 邻接表 思路:基本源于FF方法,给每个顶点设定层次标号,和允许弧. 优化: 1.当前弧优化(重要). 1.每找到以条增广路回退到断点(常数优化 ...
- Win异常: 除了chrome浏览器外,所有安装的软件都连不上网
经查找资料,是LSP被篡改,恢复后使用正常. 百度百科 LSP: Layered Service Provider, 即分层服务提程序,Winsock 作为应用程序的 Windows 的网络套接字工 ...
- jQuery慢慢啃之事件(七)
1.ready(fn)//当DOM载入就绪可以查询及操纵时绑定一个要执行的函数. $(document).ready(function(){ // 在这里写你的代码...}); 使用 $(docume ...
- ios开发之ios9UIWebView不显示网页问题
错误描述: App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecu ...
- PHP 用户注册与登录
网站用户注册与登录是很常用的一个功能,本节教材就以此来演示一下 PHP 中如何开发用户注册与登录模块. 本节需要用到的重点 PHP 基础知识: PHP 中预定义 $_POST 和 $_GET 全局变量 ...
- shell排序算法
今天看<The C Programming Language>的时候看到了shell排序算法, /* shellsort: sort v[0]...v[n-1] into increasi ...
- JS:window.onload的使用介绍
作者: 字体:[增加 减小] 类型:转载 时间:2013-11-13我要评论 window.onload在某些情况下还是比较实用的,比如加载时执行哪些脚本等等,下面有几个不错的示例,需要的朋友可以参考 ...
- 使用jQuery UI方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Blue Jeans
Description The Genographic Project is a research partnership between IBM and The National Geographi ...
- 源代码安装GIT
参考URL:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=25150840&id=4250659 若是条件允许,从源代 ...