Android MonkeyRunner
MonkeyRunner 也是一款安卓sdk自有的测试工具 可以用来做功能测试
阅读目录
MonkeyRunner环境搭建
1. 安装JDK的安装与配置
2. 安装Python编译器 https://www.python.org/download
3. 设置环境变量
MonkeyRunner 概述
monkeyrunner 也是一款安卓sdk自有的测试工具,位于\sdk\tools下面
比monkey强大一些, 它主要可应用于功能测试,回归测试,并且可以自定义测试扩展,灵活性高,测试人员可以完全控制
monkeyrunner 工具提供了一组API, 通过这些API函数可以在Android代码之外 (当然也可以直接在源代码直接使用) 控制android设备和模拟器
通过monkeyrunner, 也可以写出一个Python脚本来安装,运行,测试,发送模拟操作流结果截图对比等等。
MonkeyRunner 录制,回放功能
monkeyrunner 运行在PC上, 逐行的去解释Python脚本代码, 将命令发送到Android设备上或者模拟器上执行, monkeyrunner除了支持python脚本来执行测试,还可以通过录制回放的方式来执行测试
MonkeyRunner 录制回放
通过monkeyrunner 脚本录制功能可以实现,录制和回放功能,但该功能目前提供操作很简单,只能运行比较简单的操作,而且要考虑不同机器的执行效率以及操作之间的时间间隔,
录制回放以实例recorder.mr来说明操作如下图所示:

下载 recorder.py
下载 playback.py
运行 monkeyrunner.bat recorder.py

手工编写monkeyrunner 测试脚本
虽然monkeyrunner脚本使用python语法编写,但实际上是通过Jpython来解释执行,Jpython是python的Java实现, 它将python 代码解释成Java 虚拟机上的字节码并执行,这种做法允许在Python中继承一个Java类型,可以调用任意的Java API
#导入我们需要用到的包和类并且起别名
import sys
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi #connect device 连接设备
#第一个参数为等待连接设备时间
#第二个参数为具体连接的设备
device = mr.waitForConnection()
if not device:
print >> sys.stderr,"fail"
sys.exit()
#定义要启动的Activity
componentName='com.example.simulate/.ShellActivity'
#启动特定的Activity
device.startActivity(component=componentName)
mr.sleep(3.0)
#do someting 进行我们的操作
#输入 helloworld
device.type('helloworld')
#输入回车
device.press('KEYCODE_ENTER')
#return keyboard
#device.press('KEYCODE_BACK')
#------
#takeSnapshot截图
mr.sleep(3.0)
result = device.takeSnapshot() #save to file 保存到文件
result.writeToFile('./shot1.png','png');
Android MonkeyRunner的更多相关文章
- Android MonkeyRunner自动拨打电话
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice import time device = MonkeyRunner.wa ...
- 解决方案:android monkeyrunner:Timeout while trying to create chimp mananger(device = MonkeyRunner.waitForConnection()一直报错的问题)
monkeyrunner在执行device = MonkeyRunner.waitForConnection()一直报错的问题 (或者[main] [com.android.chimpchat.adb ...
- Using Android monkeyrunner from Eclipse, both in Windows and Linux!
This time I want to use English to make this article useful for all others in the world:) As you kno ...
- [Android]官网《monkeyrunner》中文翻译
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5050768.html 翻译自 Android Develope ...
- android 测试 Monkey 和 MonkeyRunner 的使用
一.Monkey的使用 Monkey使用起来比较简单,简而言之就是模拟手机点击效果,随机发送N个点击动作给手机,主要对于程序的稳定和承受压力的测试. 1.首先连接上你的手机或者启动模拟器: 2.运行C ...
- Android自动化学习笔记:编写MonkeyRunner脚本的几种方式
---------------------------------------------------------------------------------------------------- ...
- Android自动化学习笔记之MonkeyRunner:MonkeyRunner的录制和回放
---------------------------------------------------------------------------------------------------- ...
- Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
---------------------------------------------------------------------------------------------------- ...
- Android自动化学习笔记之MonkeyRunner:用Eclipse执行MonkeyRunner脚本
Info: 初步学习,难免会有疏漏,以后我会不断修改补全,直到完美.转载请注明出处,谢谢. 2014-10-11: 初版 2014-10-16: 完善 ------------------------ ...
随机推荐
- TZOJ 2289 Help Bob(状压DP)
描述 Bob loves Pizza but is always out of money. One day he reads in the newspapers that his favorite ...
- ReentrantLock 实现
ReentrantLock 实现: 关于锁的操作都是依赖于state 的值,当state =0 时候,表示 线程可以获取锁,state =1 表示锁已经占用,等待释放 获取锁的方法: protec ...
- Xcode9模拟器隐藏边框
选中模拟器,在Mac顶部菜单栏找到Window-->Show Device Bezeles 取消勾选代表去除黑边,勾选代表展示黑边,根据个人喜好设置吧
- 010Edit手写PE
前言PE结构DOS头IMAGE_DOS_HEADERPE头介绍总大小[248字节]结构体含义标记(4字节)0x4550文件头(20字节)扩展头(224字节)为程序添加ExitProcess函数 前言 ...
- python 聊天程序(基于UDP)
from threading import Thread from socket import * updSocket = socket(AF_INET,SOCK_DGRAM) updSocket.b ...
- jQuery的1.x版本的$(element).css()设置元素字体颜色时出现的问题(在IE8以下)
最近赶项目,自己写了个基于jQuery的弹出层插件,中间遇到一个问题,怎么也找不到解决方法,最后发现就是空格的问题...欲哭无泪啊... 在给函数传参时,因为写css代码时习惯在:后面加个空格在写样式 ...
- Unity3D-RayMarch-几何图元0
效果图: 将下面的shader代码对应的Material拖给一个面片,即可看到效果. shader代码: // Upgrade NOTE: replaced '_Object2World' with ...
- selenium+java定位163/126邮箱元素显示定位失败解决
开始在没有进入iframe时,用任何方法定位163/126邮箱登录页面的元素都不可能定位到,eclipse工作台会显示Unable to locate element:…… 这种情况我遇到了两种原因: ...
- Python 的经典设计格言,格言来源于 Python 但不限于 Python
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Si ...
- jsp页面的html代码显示不出来,提示Uncaught SyntaxError: Unexpected token <
jsp页面的html代码显示不出来,提示Uncaught SyntaxError: Unexpected token < <input type="hidden" na ...