51Testing软件测试论坛

标题: 关于Monkeyrunner连接手机设备启动APP的问题 [打印本页]

作者: ingwlhot0801    时间: 2013-1-7 10:45
标题: 关于Monkeyrunner连接手机设备启动APP的问题
最经正在攻Monkeyrunner,万事开头难啊,刚一上手就遇到了个问题,还行有经验的来协助并讨论一下,在下感恩不尽,好了,废话少说,现在切入正题:

环境:Monkeyrunner+Python3.3
终端:HTC G14(MIUI 4.0.3系统,官网的ROM)

以ApiDemo演示为例,前提是此程序已成功安装

进入cmd命令窗口

依次输入命令:

1、monkeyrunner  回车

2、from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice  回车

3、device=MonkeyRunner.waitRorConnection(5,‘HT23LV804061’) 回车
# 'HT23LV804061'为终端的设备名称(可从adb devices获取)

4、device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")

执行步骤4时并没有打开app主页面,终端无响应,在模拟器中是可以打开的!
但是在手动打开app后,执行device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP),终端可正常响应

还请有经验的朋友来回答一下,是命令有误,还是系统与Monkeyrunner的兼容问题造成的?
作者: likang2005608    时间: 2013-1-7 15:51
第3步中,如果只连接一个手机设备可以不用添加设备名称
可以改为:device=MonkeyRunner.waitRorConnection()
第4步中,要保证package和activity名称正确
作者: ingwlhot0801    时间: 2013-1-8 10:13
回复 2# likang2005608

还有一个问题,monkeyrunner传入app时运用device.installPackage(),其中括号内写入相对路径,这儿的当前路径是什么?我用的windows xp
作者: likang2005608    时间: 2013-1-22 14:14
回复 3# ingwlhot0801


你在执行monkeyrunner命令之前,首先要进入monkeyrunner.bat所在目录下。(例如我的D:\adt-bundle-windows-x86\sdk\tools)所以这里的相对路径当然是相对tools这个目录的app路径。简单的方法就是在monkeyrunner.bat所在目录下保存你要安装的apk文件。此时代码就类似下面这样:device.installPackage('./sdk_demo.apk')
作者: chy2436447@    时间: 2013-5-11 14:42
回复 2# likang2005608


   确认可以不用输入设备名吗?我测试,不输入设备名不能连接
作者: jiguanghover    时间: 2013-5-14 09:12
device=MonkeyRunner.waitRorConnection()这句写错了吧,device=MonkeyRunner.waitForConnection()
作者: zpy8202    时间: 2013-7-3 10:20
回复 1# ingwlhot0801


    我和你碰到了同样的问题,应该是兼容的问题,同样的脚本在2.3.3模拟器上打开正常,但是在4.0.4系统下,手机这是menu键亮了一下!正在查找如何解决
作者: 生如夏花LUX    时间: 2013-11-7 09:42
回复 7# zpy8202

我现在也遇到了这个问题 请问怎么解决的呢?
作者: 张亚洲    时间: 2013-12-9 19:59
回复  zpy8202

我现在也遇到了这个问题 请问怎么解决的呢?
生如夏花LUX 发表于 2013-11-7 09:42


device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")

这里把双引号改成单引号试试,应该没问题
com.example.android.apis--对应应用包名
com.example.android.apis.ApiDemos--对应启动后的主程序
作者: loading_happy    时间: 2014-5-20 14:00
回复 5# chy2436447@
当只连接一个设备时,device=MonkeyRunner.waitForConnection()是可以成功执行并连接的。
我一只是这样用的。
作者: oo0vini0oo    时间: 2015-8-25 17:11
刚接触,请问怎么使用monkeyrunner连接模拟器。求具体步骤。感激。。没有安装eclipse
怎么使用monkeyrunner链接手机。求步骤。感激不尽。。。

作者: joy66    时间: 2015-11-16 16:51
手机4.4的系统,同样遇到app起不来的问题,请大神指点。
作者: mumusan    时间: 2016-4-14 15:31
哥们你的包名是不是多写了个.apis???
作者: zy36151    时间: 2016-4-29 17:24
楼主的语句,给我了好大帮助,之前一直用py脚本,总说报错,根据楼主的一句句来,成功了,除了那个错的单词~
作者: cuikejie123    时间: 2016-5-26 14:42
1.device=MonkeyRunner.waitForConnection()  这种是默认的,也可以像楼主一样加入参数,参数一般用于连接多个设备时使用
2.component=‘’这里要用单引号




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2