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的更多相关文章
随机推荐
- Hibernate学习笔记(四)—— 表与表的关系
一.一对多|多对一 1.1 关系表达 1.1.1 表中的表达 建表原则:在多的一方创建外键指向一的一方的主键. 1.1.2 实体中的表达 [客户实体] public class Customer { ...
- cmder 常用快捷键
双Tab,用于补全 Ctrl+T,建立新页 Ctrl+W,关闭标签页 Ctrl+Tab,切换标签页 Alt+F4,关闭所有标签页 Ctrl+1,切换到第一个页签,Ctrl+2同理 Alt + ente ...
- debug启动项目很慢
用debug启动项目比正常启动慢,从网上找到的是这样说的.删除所有的断点就可以了. 这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错 ...
- AJAX概述和简单使用
一.ajax概述: asynchronous javascript and xml ,用于异步的向服务器发出请求,接收数据的 一种技术. 在整个过程中:页面无刷新,不打断用户的操作: 按需要获取数据, ...
- vue 在使用v-html绑定的时候,里面的元素不会继承外部的css,解决方案
问题 想用vue绑定父文本生成的HTML内容,但是发现CSS样式根本不生效,选择器没起作用 代码: <div class="announcedetailImg" v-html ...
- C++ GUI Qt4编程(13)-6.2preferencedialog
1. 主要介绍了QStackedLayout.QListWidget.QDialogButtonBox的简单用法.2. QStackedLayout: 要使某个特定的子窗口部件可见,可以用setC ...
- linux 入门测验
cd . 当前目录.. 返回上一级目录 ../../../返回多级目录 grep "目标信息" 目标地址 -v :显示没有被匹配的信息 mkdir -p:创建多级目录 mkdir ...
- C#DataTable与Model互转
/// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where ...
- TimesTen启动停止命令
ttDaemonAdmin –start 启动 ttDaemonAdmin –stop 停止 或打开服务cmd-serviers.msc,找到相关服务启动或停止.
- Docker概念学习系列之Docker是什么?(1)
不多说,直接上 干货! Docker是什么? 见[博主]撰写的 https://mp.weixin.qq.com/s/iWAzj7baD93hexsVJ7pBfQ Docker是一个开源的应用容 ...