51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7548|回复: 14
打印 上一主题 下一主题

Monkeyrunner 能控制真手机吗?不是模拟器! 求真相!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-4-25 12:46:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Monkeyrunner 能控制真手机吗?不是模拟器!
为什么那些press, touch,drag的命令在模拟器上运行OK,但在真手机上运行就出错?
此外,用recorder连接真手机进行录制,进行点击之类的操作的时候也会出一样的错。

是我哪里弄错了吗?还是Monkeyrunner 能不能控制真手机?还是只能在模拟器上运行?

>>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
>>> device = MonkeyRunner.waitForConnection()

下面这句会出错:
>>> device.press('KEYCODE_MENU',MonkeyDevice.DOWN_AND_UP)


120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] Error se
nding press event: KEYCODE_MENU DOWN_AND_UP
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice]java.net.SocketException: Software caused connection abort: recv failed
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
net.SocketInputStream.socketRead0(Native Method)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
net.SocketInputStream.read(SocketInputStream.java:129)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at sun.n
io.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at sun.n
io.cs.StreamDecoder.implRead(StreamDecoder.java:306)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at sun.n
io.cs.StreamDecoder.read(StreamDecoder.java:158)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
io.InputStreamReader.read(InputStreamReader.java:167)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
io.BufferedReader.fill(BufferedReader.java:136)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
io.BufferedReader.readLine(BufferedReader.java:299)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
io.BufferedReader.readLine(BufferedReader.java:362)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.chimpchat.ChimpManager.sendMonkeyEventAndGetResponse(ChimpManager.java:18
7)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.chimpchat.ChimpManager.sendMonkeyEvent(ChimpManager.java:234)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.chimpchat.ChimpManager.press(ChimpManager.java:134)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.chimpchat.adb.AdbChimpDevice.press(AdbChimpDevice.java:322)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.monkeyrunner.MonkeyDevice.press(MonkeyDevice.java:193)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at sun.r
eflect.NativeMethodAccessorImpl.invoke0(Native Method)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at sun.r
eflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at sun.r
eflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at java.
lang.reflect.Method.invoke(Method.java:597)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyObject.__call__(PyObject.java:355)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyMethod.__call__(PyMethod.java:215)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyMethod.instancemethod___call__(PyMethod.java:221)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyMethod.__call__(PyMethod.java:206)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyObject.__call__(PyObject.java:414)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyObject.__call__(PyObject.java:418)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.pycode._pyx5.f$0(<stdin>:1)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.pycode._pyx5.call_function(<stdin>)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyTableCode.call(PyTableCode.java:165)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.PyCode.call(PyCode.java:18)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.Py.runCode(Py.java:1197)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.core.Py.exec(Py.java:1241)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.PythonInterpreter.exec(PythonInterpreter.java:147)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:89)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:70)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:46)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.InteractiveConsole.push(InteractiveConsole.java:110)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.InteractiveConsole.interact(InteractiveConsole.java:90)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at org.p
ython.util.InteractiveConsole.interact(InteractiveConsole.java:60)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.monkeyrunner.ScriptRunner.console(ScriptRunner.java:193)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter.java:73)
120424 15:40:38.501:S [main] [com.android.chimpchat.adb.AdbChimpDevice] at com.a
ndroid.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter.java:189)
>>>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

14#
发表于 2016-5-28 18:59:48 | 只看该作者
可以正常控制真机啊  一直都是用真机
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    2017-7-9 10:38
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]测试连长

    13#
    发表于 2014-8-10 10:59:16 | 只看该作者
    不管哪个自动化运行都会报错的,所以要学会分析解决问题, monkeyrunner一般情况下是 真机没有root权限的问题,或者不能获取控件ID的问题, 剩下的就是你的脚本问题了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-1 08:26
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]测试旅长

    12#
    发表于 2014-8-8 10:05:17 | 只看该作者
    一直可以。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2012-6-15 14:36:10 | 只看该作者
    可以控制真机,我就写过monkeyrunner简单的脚本。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2012-6-1 20:27:45 | 只看该作者
    顶!!!!!!!!!!!!!!!!!!!!!!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2012-4-27 19:00:59 | 只看该作者
    你是用的手机还是模拟器啊。

    如果用的是手机的话,你在sleep 3秒之后还能press吗,

    Monkeyrunner.sleep(4)
    device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)
    Monkeyrunner.sleep(4)
    device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)
    Monkeyrunner.sleep(4)
    device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)

    试试这样3次跑得下来不。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2012-4-27 18:03:12 | 只看该作者
    回复 7# 85489510


        我这边使用sleep没有问题的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2012-4-27 16:53:54 | 只看该作者
    额,难道我用的手机是特例吗。。

    我只要在monkeyrunner.bat命令行模式下输入任何动作的命令就会出 Error se
    nding XXX even t错误。

    但是如果把脚本写在py文件里面整文件运行就可以。
    现在问题又来了,在用py文件运行的时候,脚本里面不能有monkeyrunner.sleep(XX)出现,只要一sleep后面就出错了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2012-4-27 16:53:13 | 只看该作者
    额,难道我用的手机是特例吗。。

    我只要在monkeyrunner.bat命令行模式下输入任何动作的命令就会出 Error se
    nding XXX even t错误。

    但是如果把脚本写在py文件里面整文件运行就可以。
    现在问题又来了,在用py文件运行的时候,脚本里面不能有monkeyrunner.sleep(XX)出现,只要一sleep后面就出错了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2012-4-27 16:45:55 | 只看该作者
    对了,楼主在用Monkey或者Monkeyrunner的时候,这个Log怎么看啊?感觉除了错之后打印出的Log好多,不知道该怎么看,怎样通过Log查到出错的原因
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2012-4-27 16:44:43 | 只看该作者
    除了Monkeyrunner,大家还在用什么工具进行Android自动化测试?Robotium这个工具能否在没有源码的情况下进行测试?我这边按照指导书,在没有源码只有apk的情况下测试,老是出现“Test run failed: Unable to find instrumentation info for: ComponentInfo{com.calculator/android.test.InstrumentationTestRunner}
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2012-4-26 14:41:54 | 只看该作者
    可以在真机上运行啊
    改一下,试试:
    device.press('KEYCODE_MENU','DOWN_AND_UP')
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2012-4-26 14:41:47 | 只看该作者
    可以在真机上运行啊
    改一下,试试:
    device.press('KEYCODE_MENU','DOWN_AND_UP')
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 11:42 , Processed in 0.083750 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表