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. 关于vue中tamplate和DOM节点浅谈

    前言:在开发前段页面使用vue时,我们能经常看到template标签.这里粗略讲下自己对vue中template理解和使用. 1. 先了解vue vue.js是一个轻巧.高性能.壳组件画的MVVM库. ...

  2. vue全局API

    一.Vue.extend() 顾名思义  extend  继承,官方给出的解释是   (使用基础 Vue 构造器,创建一个“子类”.参数是一个包含组件选项的对象.) Vue构造器是指  vue是一个构 ...

  3. Eclipse中查看JDK类库源代码

    在Eclipse中编写代码时,有时候可能需要了解JDK类库的一些特性,这个时候可以通过查看类的源代码来了解JDK类的详细信息.本文主要内容就是如何直接在Eclipse开发环境中查看JDK类库源代码. ...

  4. typescript如何判断实例是否实现了接口?

    ·不能用instanceof,因为运行时不存在Interface ·TS 中判断是否实现接口的核心原则是基于结构而不是基于名称的.即鸭子类型判断. ·实现: interface A{ discrimi ...

  5. Movavi Video Editor 15 Plus Mac怎样更改视频的分辨率?

    使用Movavi Video Editor 15您可以对视频进行切割和修剪,裁剪和旋转,色度键,视频稳定以及画中画等很多的编辑,该软件操作简单,就算是新手也无需担心操作问题,本文讲述了Movavi V ...

  6. ArrayList增加扩容问题 源码分析

    public class ArrayList<E>{ private static final int DEFAULT_CAPACITY = 10;//默认的容量是10 private s ...

  7. Madlibs

    name1 = input('请输入一个名字:') name2 = input('再输入一个名字:') animal = input('请输入一种动物:') print('一二三四五{}上山打{}不在 ...

  8. Apache Flink 简单安装

    流计算这两年很火了,可能对数据的实时性要求高.现在用的hadoop框架,对流计算的支持,主要还是微批(spark),也不支持“Exactly Once”语义(可以使用外接的数据库解决),公司项目可能会 ...

  9. JDBC学习(含转载)

    首先连接数据库: Class.forName("com.mysql.jdbc.Driver");//加载jdbc驱动 Connection conn=DriverManager.g ...

  10. php-fpm 配置中pm的选择

    另附豆瓣技术贴:https://www.douban.com/note/315222037/ 1.php-fpm优化参数介绍他们分别是:pm.pm.max_children.pm.start_serv ...