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的更多相关文章

  1. Android MonkeyRunner自动拨打电话

    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice import time device = MonkeyRunner.wa ...

  2. 解决方案:android monkeyrunner:Timeout while trying to create chimp mananger(device = MonkeyRunner.waitForConnection()一直报错的问题)

    monkeyrunner在执行device = MonkeyRunner.waitForConnection()一直报错的问题 (或者[main] [com.android.chimpchat.adb ...

  3. 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 ...

  4. [Android]官网《monkeyrunner》中文翻译

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5050768.html 翻译自 Android Develope ...

  5. android 测试 Monkey 和 MonkeyRunner 的使用

    一.Monkey的使用 Monkey使用起来比较简单,简而言之就是模拟手机点击效果,随机发送N个点击动作给手机,主要对于程序的稳定和承受压力的测试. 1.首先连接上你的手机或者启动模拟器: 2.运行C ...

  6. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  7. Android自动化学习笔记之MonkeyRunner:MonkeyRunner的录制和回放

    ---------------------------------------------------------------------------------------------------- ...

  8. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

    ---------------------------------------------------------------------------------------------------- ...

  9. Android自动化学习笔记之MonkeyRunner:用Eclipse执行MonkeyRunner脚本

    Info: 初步学习,难免会有疏漏,以后我会不断修改补全,直到完美.转载请注明出处,谢谢. 2014-10-11: 初版 2014-10-16: 完善 ------------------------ ...

随机推荐

  1. TZOJ 2289 Help Bob(状压DP)

    描述 Bob loves Pizza but is always out of money. One day he reads in the newspapers that his favorite ...

  2. ReentrantLock 实现

    ReentrantLock 实现:   关于锁的操作都是依赖于state 的值,当state =0 时候,表示 线程可以获取锁,state =1 表示锁已经占用,等待释放 获取锁的方法: protec ...

  3. Xcode9模拟器隐藏边框

    选中模拟器,在Mac顶部菜单栏找到Window-->Show Device Bezeles 取消勾选代表去除黑边,勾选代表展示黑边,根据个人喜好设置吧

  4. 010Edit手写PE

    前言PE结构DOS头IMAGE_DOS_HEADERPE头介绍总大小[248字节]结构体含义标记(4字节)0x4550文件头(20字节)扩展头(224字节)为程序添加ExitProcess函数 前言 ...

  5. python 聊天程序(基于UDP)

    from threading import Thread from socket import * updSocket = socket(AF_INET,SOCK_DGRAM) updSocket.b ...

  6. jQuery的1.x版本的$(element).css()设置元素字体颜色时出现的问题(在IE8以下)

    最近赶项目,自己写了个基于jQuery的弹出层插件,中间遇到一个问题,怎么也找不到解决方法,最后发现就是空格的问题...欲哭无泪啊... 在给函数传参时,因为写css代码时习惯在:后面加个空格在写样式 ...

  7. Unity3D-RayMarch-几何图元0

    效果图: 将下面的shader代码对应的Material拖给一个面片,即可看到效果. shader代码: // Upgrade NOTE: replaced '_Object2World' with ...

  8. selenium+java定位163/126邮箱元素显示定位失败解决

    开始在没有进入iframe时,用任何方法定位163/126邮箱登录页面的元素都不可能定位到,eclipse工作台会显示Unable to locate element:…… 这种情况我遇到了两种原因: ...

  9. Python 的经典设计格言,格言来源于 Python 但不限于 Python

    The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Si ...

  10. jsp页面的html代码显示不出来,提示Uncaught SyntaxError: Unexpected token <

    jsp页面的html代码显示不出来,提示Uncaught SyntaxError: Unexpected token < <input type="hidden" na ...