一, 终端输入单行命令
1 开启android 模拟器
首先使用eclipse的AVD Manager来创建模拟器antester,然后在命令地下运行c:\emulator @antester即可启动模拟器。
2 执行monkeyrunner命令:
进入sdk的tool目录中,比如我的是D:\monkeyrunnertest\adt-bundle-windows-x86_64-20140702\sdk\tools.
输入monkeyrunner.bat(启动monkeyrunner这个批处理文件)
(1) 引入monkeyrunner需要的两个模块
from com.android.monkeyrunner i mport MonkeyRunner, MonkeyDevice 回车
(2) 把模拟器和monkey绑定,绑定后在monkeyrunner的操作等同于在模拟器的操作
device = MonkeyRunner.waitForConnection()
(3) 安装一个apk应用包
我安装的zhongcho包 d:\robotiumest\apps\zhongchou.apk
device.installPackage("d:\\robotiumest\\apps\\zhongchou.apk ")
(4) 接下来,我们就可以启动其中的任意activity了,只要传入package和activity名称即可。命令如下:
device.startActivity(component = " com.subject.zhongchou/com.subject.zhongchou.activity.SplashActivity ")
(5) 现在Application启动起来了,就可以根据你的需要执行具体的操作了,比如登录!
二,monkeyrunner运行python文件
1,启动Eclipse,新建一个Python工程,创建Src文件夹,然后新建文件LoginTest.py.输入以下代码:
#-*- coding: UTF-8 -*-
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from com.android.monkeyrunner.easy import By
import time
def testlogin():
#登录测试函数
device = MonkeyRunner.waitForConnection()
easy_device=EasyMonkeyDevice(device)
#安装众筹网的app
device.installPackage("D:\\robotiumautotest\\apps\\zhongchou.apk")
#启动App device.startActivity(component="com.subject.zhongchou/com.subject.zhongchou.activity.SplashActivity")
time.sleep(3)
#输入用户名和密码 easy_device.touch(By.id('com.subject.zhongchou:id/loginnumber_phone'),MonkeyDevice.DOWN_AND_UP) easy_device.type(By.id('com.subject.zhongchou:id/loginnumber_phone'),'XXXXXXX') easy_device.touch(By.id('com.subject.zhongchou:id/loginnumber_password'),MonkeyDevice.DOWN_AND_UP) easy_device.type(By.id('com.subject.zhongchou:id/loginnumber_password'),'XXXXXXX')
#单击登录按钮 easy_device.touch(By.id('com.subject.zhongchou:id/go_numberlogin'),MonkeyDevice.DOWN_AND_UP)
time.sleep(5)
def main():
#此处可以写多个测试函数的调用,也可以安排执行顺序
testlogin()
if __name__=='__main__':
main()
(2) 在命令行中用cd命令定位到android SDK的路径下的tools目录,运行如下命令:
D:\monkeyrunnertest\adt-bundle-windows-x86_64-20140702\sdk\tools>monkeyrunner.bat d:\monkeyrunnertest\ZhongChouTest\src\LoginTest.py
(4)模拟器上就开始安装众筹网的APP,安装完成后,执行打开,登录等操作。
三,真机运行MonkeyRunner测试用例
如果想用真机运行测试用例,先将真机连接到电脑上,运行adb devices –l 查看连接是否成功,如果成功,就可以按模拟器上运行的方法来运行测试用例。
注意:真机运行的时候会出现:“Unable to get view server version from device 284d96a5”的错误,在网上查看了一下,发现出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,只有ro.secure参数等于0且ro.debuggable等于1的android系统)。Hierarchy Viewer在连接手机时,手机上必须启动一个叫View Server的客户端与其进行socket通信。而在商业手机上,是无法开启View Server的,故Hierarchy Viewer是无法连接到普通的商业手机。
具体的解决办法
方法一:
见:http://maider.blog.sohu.com/255448342.html,上面说的挺麻熔岩烦的,而且是有风险的,我拿的是公司的测试机,不敢随便尝试。
方法二:
解决方法(以华为c8812为例):
1、找一个开发板的Android固件,我选择的是百度云rom
该rom下载地址:http://pan.baidu.com/s/1eQIII58
2、用百度云刷机工具将rom写入手机(注意:写入之前请备份数据。)
3、等待一会,手机正常开机后就可以了
4、用adb shell service call window 3来查看
若返回值是:Result: Parcel(00000000 00000000 '........')" 说明View Server处于关闭状态
若返回值是:Result: Parcel(00000000 00000001 '........')" 说明View Server处于开启状态
5、安装busybox应用
6、设置>开发人员选项>离线日志勾选允许输出离线日志