MonkeyRunnermac
http://blog.csdn.net/wyb199026/article/details/51436754
背景
之前想学习自动化测试的时候,就研究过MonkeyRunner,说实话MonkeyRunner在一定程度上是有局限性的,但是在某些方面解决问题来看,是非常方便的。比如使用Monkey测试的时候,无法很好的控制Monkey的落点。不能保证所有的页面都测到,因此可以使用MonkeyRunner来定制脚本,保证每个Activity都能覆盖。
机器环境
其实一开始我是想找一个现成的教程学学,结果发现基本上说的都是Windows环境下,只能自己摸索摸索。
MonkeyRunner环境
MonkeyRunner是AndroidSDK自带的一个东西,在SDK目录中的tools文件夹中,直接带有MonkeyRunner。
这个命令可以直接使用命令行工具的open方法来直接打开命令,会进入Jyhon的命令行:
SvenWeng@wengyanbindeMacBook-Pro:~/Desktop/android-sdk-macosx/tools|
⇒ monkeyrunner
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_79
>>>
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
在这里直接输入命令:
from com.android.monkeyrunner import MonkeyRunner
- 1
- 1
没有报错说明MonkeyRunner命令是没问题的,现在需要把MonkeyRunner配置到环境变量中。
配置MonkeyRunner到环境变量
在Mac中,环境变量有好多个,一般来说,我们说的环境变量就是一个配置文件,如果你使用的是Mac的默认命令行终端,那么你用的就是bash,你需要在bash_profile中添加环境变量:
open ~/.bash_profile
- 1
- 1
打开文件后,需要输入这些内容:
export PATH=${PATH}:/Users/SvenWeng/Desktop/android-sdk-macosx/platform-tools/:/Users/SvenWeng/Desktop/android-sdk-macosx/tools/
- 1
- 1
然后保存后关闭文件,需要注意的是,上面的命令配置sdk的路径是我的,你的肯定不一样,需要把路径做一些修改。然后执行:
source ~/.bash_profile
- 1
- 1
如果你使用的是zsh,那么环境变量就是:
~/.zshrc
- 1
- 1
同样的内容放置进去即可。
上面的配置完毕之后打开命令行工具运行monkeyrunner,如果成功的进入了Jython,那么恭喜你,MonkeyRunner的环境已经配置成功。如果失败,请按照上面的方法仔细检查检查。
第一个Demo
配置完毕之后,我们需要运行一下脚本检查是否运行成功,MonkeyRunner的API是python的,那么我们就要写一个python的demo。
import sys
from com.android.monkeyrunner import MonkeyRunner as mr
device = mr.waitForConnection()
if device:
device.startActivity(component='com.weizq/com.zztzt.android.simple.app.MainActivity')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
上面代码中,startActivity方法中需要填入你需要启动的Activity。请使用adb或者咨询开发拿到相关Activity名称。
运行demo
运行的方法很简单,命令是monkeyrunner + py文件的路径,比如我这样:
monkeyrunner test.py
- 1
- 1
我直接用文件名是因为我已经把shell的路径进到和文件同一层级了,如果不在同一层级,可以使用绝对路径。
最后,我强调一点,一定要先把模拟器给启动,才能测试脚本。
MonkeyRunnermac的更多相关文章
随机推荐
- asp.net boilerplate 配置文件加载
- POJ_3262 Protecting the Flowers 【贪心】
一.题面 POJ3262 二.分析 这题要往贪心上面想应该还是很容易的,但问题是要证明为什么比值关系就能满足. 可以选择几个去分析,入1-6 与 2-15 和 1-6 与2-5 和 1-6 与 2 ...
- 【AC自动机】【字符串】【字典树】AC自动机 学习笔记
blog:www.wjyyy.top AC自动机是一种毒瘤的方便的多模式串匹配算法.基于字典树,用到了类似KMP的思维. AC自动机与KMP不同的是,AC自动机可以同时匹配多个模式串, ...
- 【贪心】洛谷P1607 [USACO09FEB]庙会班车Fair Shuttle 题解
不是很容易写出正解的贪心问题. 题目描述 Although Farmer John has no problems walking around the fair to collect pri ...
- WSH的SpecialFolders对像
前面我做过一个VBS,来实现添加网站快捷方式到开始菜单,当然你也可以添加到别的地方,这就是那个对像的一些用法返回 SpecialFolders 对象(特殊文件夹集). object.SpecialFo ...
- Hadoop基础入门
一.hadoop是什么? (1)Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式.Hadoop= ...
- 日志统计--蓝桥杯--vector
/* 标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞&q ...
- 【网络】CCNA实验一:Vlan、Trunk
要求: 1:不同楼层物理隔离,但逻辑相连 2:相同楼层物理相连,但逻辑隔离 3:主机可以动态获取IP地址 4:不同VLAN间可以进行通信 5:主机最终访问www.esafenet.com弹出" ...
- Python入门书的读书笔记
入门书地址 三引号 (""" 或 ''') 来指定多行字符串字符串是不可变的输出小数点后三位 print('{0:.3f}'.format(1 / 3))输出字符串长度为 ...
- nginx 地址重写
例如, www.baidu.com 跳到 www.baidu.com/index.html #if ( $http_host ~* "^(.*)\.baidu\.com$" ...