对android世界小白白的人儿,弄个monkeyrunner环境吭哧哧的费了大半天的劲,没办法,因为实在是对这方面一窍不通,名词都是一个个百度才略懂一二,既然这么辛苦费劲的才能弄好,怎么也得记录下来,免得下次又不会。

monkeyrunner是android sdk自带的测试工具,搭建monkeyrunner环境其实就是需要安装一个android sdk,当然也得有java环境jdk和python环境,此处只记录下我今天安装sdk的血泪史

1、安装sdk

先吐槽下走的弯路,去网上搜索monkeyrunner环境搭建,给出得一堆文档里都提到了android官网,http://developer.android.com/sdk/index.html#download,好吧,因为我实在是不善于翻墙,用尽各种办法都无法成功下载,后在360软件管家中搜索android sdk,下载了一个 sdk tools for android studio,没文化真可怕,安装好后进入tools目录输入monkeyrunner,提示Please use SDK manager and check if Android SDK platform-tools are installed,网上搜索答案,说是没有添加环境变量,尝试添加环境变量才发现安装目录下根本木有platform-tools,怎么破,怎么破,论坛、q群,各种咨询,终于才明白,sdk包弄错了,虽然没明白为啥错了,但终究是走上正道了

去网上百度搜索下载google android sdk ,下载后解压缩,里面有三个文件夹,因为jdk和eclipse我都有,所以直接将sdk复制到我指定的目录下

2、打开cmd,进入sdk\tools目录输入monkeyrunner

3、配置环境变量

现在在tools目录下输入monkeyrunner没问题,但是离开这个目录就会提示找不到这个命令,所以可以添加环境变量解决这个问题

环境变量-系统变量,添加一个新的变量名android,变量值D:\Program Files\Android\sdk\tools;D:\Program Files\Android\sdk\platform-tools;

打开系统变量中的path变量,将上面两个路径追加到后面保存

4、打开cmd,在当前目录输入monkeyrunner

 5、简单示例

Monkeyrunner API主要包括三个模块

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

2)、MonkeyDevice:代表一个设备或模拟器。这个类为安装和卸载包、开启Activity、发送按键和触摸事件、运行测试包等提供了方法。

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

运行monkeyrunner 脚本有两种方式,一种是在在CMD命令窗口直接运行monkeyrunner,另一种使用Python编写测试代码文件,在CMD中执行monkeyrunner xx.py运行

具体示例步骤:

1、cmd中启动已创建好的模拟器

emulator -avd test

2、编写python脚本,test.py

  1. # 引入本程序所用到的模块
  2. from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
  3. # 连接手机设备
  4. device = MonkeyRunner.waitForConnection()
  5. # 截图
  6. result = device.takeSnapshot()
  7. # 将截图保存到文件
  8. result.writeToFile('E:\me\monkey\Test1_001.png','png')
  9. # 安装新的APP
  10. device.installPackage('E:\me\MonTest.apk')
  11. print ('Install Success!')
  12. result = device.takeSnapshot()
  13. result.writeToFile('E:\me\Test1_003.png','png')
  14.  
  15. if device.removePackage('com.jh.APP304394.news'):
  16. print ('Uninstall Success!')
  17. else:
  18. print 'Uninstall fail'
  19. # 暂停10秒
  20. MonkeyRunner.sleep(10)
  21. result = device.takeSnapshot()
  22. result.writeToFile('E:\me\monkey\Test1_002.png','png')

其中在使用removePackage(包名)时, 可通过aapt dump badging E:\me\monkey获得包名地址

3、cmd中执行测试脚本

monkeyrunner test.py,即可执行脚本中的相关操作

monkeyrunner环境搭建的更多相关文章

  1. 【MonkeyRunner环境搭建】

    一.配置MonkeyRunner环境变量 1.首先下载一个AndroidSDK,在SDK的目录中的tools文件夹中,直接带有MonkeyRunner 2.打开MonkeyRunner的方式: |-- ...

  2. Android自动化学习笔记之MonkeyRunner:MonkeyRunner环境搭建

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

  3. monkeyrunner之环境搭建及实例(三)

    Monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器. 一.Monkeyrunner简介 1.MOnkeyrunner相对Mo ...

  4. Monkeyrunner 简介及其环境搭建

    Monkeyrunner是通过坐标.控件ID和控件上的文字操作应用的界面元素,其测试用例是用python写的,这样就弥补了monkey只有简单命令无法执行复杂用例的缺陷.Monkeyrunner采用的 ...

  5. monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)

    monkeyrunner脚本使用Python语法编写,但它实际上是通过Jython来解释执行. Jython是Python的Java实现,它将Python代码解释成Java虚拟机上的字节码并执行,这种 ...

  6. monkeyrunner之安卓开发环境搭建(一)

    在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境. 对于程序开发人员而言,eclipse并不陌生,它提供了一个非常广阔的平台来开发程序.同样也可以用它来开发android程 ...

  7. [转]MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)

    MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)   网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置M ...

  8. 转载:monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)

    转载自:lynnLi 的monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四) monkeyrunner脚本使用Python语法编写,但它实际上是通过Jython来 ...

  9. Monkeyrunner测试环境搭建

    Monkey手机APP压力测试,是对手机发送伪随机命令,对手机进行按键,触摸等操作,MonkeyRunner是对其发送重复操作的命令,是Monkey的进阶版,可以设置重复的操作或者是重现步骤等.相比较 ...

随机推荐

  1. 链表-remove duplicates from sorted list

    struct ListNode* deleteDuplicates(struct ListNode* head) { struct ListNode *p=head; if(!head) return ...

  2. 在mac上访问自带服务器权限问题

    在开发中,有时候我们需要自己的在电脑上做一些网络相关的测试功能,因此,我们必须在本地上模拟网络环境. 在模拟网络环境中,经常会遇到访问权限的问题.现在我就把自己的解决办法写出来.我用的模拟服务器站点是 ...

  3. adb server is out of date.

    1:今天调试android的时候发现一个诡异的问题 C:\Users\xxxx>adb start-server adb server is out of date.  killing... A ...

  4. ORACLE查看当前连接用户的权限信息或者角色信息

    关于当前用户的相关信息,可以通过如下语句找到: SQL> select * from all_objects where object_name like 'SESSION%'; OWNER O ...

  5. android Fragment相关概念简介

    Fragment 详细介绍连接:http://blog.csdn.net/harvic880925/article/details/44927375 fragment是一种控制器对象,activity ...

  6. fatal error LNK1123: failure during conversion to COFF: file invalid or corr

    新装VS2010出现标题的错误,使用了下面的方法,不行 这个是由于日志文件引起的,可以将 项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是"是",改成"否&q ...

  7. TOJ 1139.Compromise

    2015-06-03 问题简述: 大概就是输入两段文本(用小写英文字母表示),分别用#表示一段话的结束输入,输出这两个文本的最长公共子序列. 简单的LCS问题,但是输入的是一段话了,而且公共部分比较是 ...

  8. leetcode Palindrome Number python

    class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool &quo ...

  9. Linux命令之修改主机名

    ubuntu永久修改主机名 1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方法: 其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后: 其二,在终端 ...

  10. (转) ios学习之 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系

    刚接触iOS开发的人难免会对苹果的各种证书.配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解.这篇文章就对Certificate.Provisioni ...