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的更多相关文章
随机推荐
- 【转】idea中maven模块编程灰色
可能是设置中模块的pom.xml文件被忽略了 去掉对勾 转自:https://blog.csdn.net/ethan__xu/article/details/80794060
- C. Magic Ship (思维+二分)
https://codeforces.com/contest/1117/problem/C 你是一个船长.最初你在点 (x1,y1) (显然,大海上的所有点都可以用平面直角坐标描述),你想去点 (x2 ...
- Jquery动态绑定事件处理函数 bind / on / delegate
1.bind方法绑定的事件处理函数不会应用到后来添加到DOM中的新元素.比如你在用bind给页面元素绑定事件之后,又新添加了一些与之前绑定过事件的元素一样的DOM元素,但是这些事件并不能在新的DOM元 ...
- POJ - 2676 暴搜 注意实现细节
经典sudoku问题 按部就班就好 一定要注意细节 大于1还是大于等于1 r c越界判断 judge时0的特判 blabla居然磨了2个小时 改了很多地方所以实现得有点冗余,反正能A吧 /*H E A ...
- VBS映射网络驱动器 映射网络驱动器
Dim objNetwork Set objNetwork = CreateObject("Wscript.Network") if objNetwork.EnumNetworkD ...
- 1144 The Missing Number (20 分)
Given N integers, you are supposed to find the smallest positive integer that is NOT in the given li ...
- ubuntu 登陆闪回
问题: Ubuntu18.04 不能进入系统了,在登陆界面输入密码后,就闪回: 解决: ssh登陆机机器: 查看用户目录下的,文件权限: .Xauthority 如果是root用户,则更改用户 sud ...
- flask之--钩子,异常,上下文,flask-script,模板,过滤器,csrf_token
一.请求钩子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: - 在请求开始时,建立数据库连接: - 在请求开始时,根据需求进行权限校验: - 在请求结束时,指定数据的交互格式: ...
- python3.6 request模块和ddt模块的安装
1.1用cmd命令进到python的安装目录的Scripts文件夹 1.2.然后输入 pip install requests,出现以下提示,说明安装成功 2.安装ddt步骤一样,只是把pip ins ...
- PIE SDK彩色标准化融合
1.算法功能简介 色彩标准化融合对彩色图像和高分辨率图像进行数学合成,从而使图像得到锐化.色彩归一化变换也被称为能量分离变换( Energy Subdivision Transform),它使用来自融 ...