51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

monkeyrunner简单示例的疑问

[复制链接]
  • TA的每日心情
    开心
    2016-1-14 12:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2011-11-4 09:33:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    各位大侠,在网上搜到monkeyrunner的小示例

    按照上面的说明,一步步实施,实施到device = MonkeyRunner.waitForConnection()时(我是已经打开了一个模拟器的)

    命令行会提示


    图片可能看不清,就是下面这段话:


    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
            at com.android.monkeyrunner.JythonUtils.createArgParser(JythonUtils.java
    :117)
            at com.android.monkeyrunner.MonkeyRunner.waitForConnection(MonkeyRunner.
    java:63)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)

    java.lang.NullPointerException: java.lang.NullPointerException

    请问,是不是环境配置方面的问题啊,这个错误提示,就跟我没打开模拟器时运行这个命令是一样的。
    各位,帮帮忙啊!
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2011-11-7 23:28:42 | 只看该作者
    例子是什么呢?能告知么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-1-14 12:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2011-11-9 10:09:54 | 只看该作者
    例子是什么呢?能告知么?
    monkeytest15 发表于 2011-11-7 23:28


    http://www.51testing.com/html/59/n-242759.html

    就是上面那个例子啊,终于等到有人回复了。。

    执行到device = MonkeyRunner.waitForConnection()时(我是已经打开了一个模拟器的)

    命令行提示如下错误
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
            at com.android.monkeyrunner.JythonUtils.createArgParser(JythonUtils.java
    :117)
            at com.android.monkeyrunner.MonkeyRunner.waitForConnection(MonkeyRunner.
    java:63)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)

    java.lang.NullPointerException: java.lang.NullPointerException
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-11-9 17:59:33 | 只看该作者
    你的测试是在模拟器上做还是在物理手机上做?
    感觉像是设备没有连接上。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-1-14 12:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2011-11-10 09:30:05 | 只看该作者
    你的测试是在模拟器上做还是在物理手机上做?
    感觉像是设备没有连接上。
    wj8106 发表于 2011-11-9 17:59


    是在模拟器上,是设备没连接上,但是我已经打开一个模拟器了呀,那要怎么样连接设备啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-1-14 12:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
     楼主| 发表于 2011-11-10 09:30:25 | 只看该作者
    你的测试是在模拟器上做还是在物理手机上做?
    感觉像是设备没有连接上。
    wj8106 发表于 2011-11-9 17:59


    是在模拟器上,是设备没连接上,但是我已经打开一个模拟器了呀,那要怎么样连接设备啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2011-11-11 23:15:58 | 只看该作者
    你把路径切换到tools目前下执行看看,不要在monkeyrunner命令行下执行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-1-14 12:39
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
     楼主| 发表于 2011-11-14 09:56:20 | 只看该作者
    你把路径切换到tools目前下执行看看,不要在monkeyrunner命令行下执行
    yyuanxiang 发表于 2011-11-11 23:15


    不在monkeyrunner命令行下执行,会提示命令不正确啊

    我就是按照这个步骤来的

      1. 用Elipse打开andorid的模拟器或者在CMD中用andorid命令打开模拟器,如下:

      D:\Software\Android SDK2.3\android-sdk-windows\tools>emulator -avd AVD2.3.3

      Comments: 定位到android SDK的路径下的tools目录,运行上面这个命令。“AVD2.3.3”是我的模拟器的名字,这个命令是每个人自己命名的,用的时候需改成实际的名字。

      2. 这个时候,如果一切正常的话,模拟器应该可以启动起来了。(运行monkeyrunner之前必须先运行相应的模拟器,不然monkeyrunner无法连接设备。这点很多教程上都没有说,我也试了好多次才明白过来)。接着,我们打开另一个CMD窗口(前一个不要关),还是定位到tools目录,输入命令"monkeyrunner",回车,将进入shell命令交互模式。

      好了,接下来就可以导入monkeyrunner所要使用的模块了。当然是我们的"From...import..."

      直接在shell命令中输入: from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice  回车

      OK,这步完成之后,我们就可以开始和模拟器“勾兑”了,哈哈,命令如下:

      device = MonkeyRunner.waitForConnection()

      没有报错的话,就代表和模拟器勾兑成功,我们可以接着“骚扰”它了。接下来,我们可以在里面装点东西了。输入如下命令,并传入你的apk所在相对路径即可。我这安装的是著名的ApiDemos。成功了会返回true。如果没有返回true,一般都是语法错误或者你传入的相对路径有问题,仔细检查下就没问题了。

      device.installPackage("../samples/android-10/ApiDemos/bin/Apidemos.apk")

      接下来,我们就可以启动其中的任意activity了,只要传入package和activity名称即可。命令如下:

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

      此时模拟器会自动打开ApiDemos这个应用程序的主页。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-3-11 15:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2011-12-12 15:30:27 | 只看该作者
    回复 8# xmperfect


        device = MonkeyRunner.waitForConnection()
    括号内 要输入你的设备名称 可以用adb devices 查看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2012-1-16 15:53:28 | 只看该作者
    好像应该是
    device = MonkeyRunner.waitForConnection(1.0,'AVD2.3.3')
    第一个参数是设备数量,第二个参数是设备名~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2012-12-17 17:35:21 | 只看该作者
    我也遇到一样的问题,一模一样,同事的电脑,windows7和XP 上都是正常的。我的也是Windows7.我实在找不出原因。
    device = MonkeyRunner.waitForConnection(1.0,'AVD2.3.3')如果只有一台模拟器设备,不需要加名字吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2012-12-18 10:28:48 | 只看该作者
    我也遇到一样的问题,一模一样,同事的电脑,windows7和XP 上都是正常的。我的也是Windows7.我实在找不出原 ...
    summercc2008 发表于 2012-12-17 17:35



    我遇到的这个问题终于解决了,我的JDK版本太低了,是1.5的,同事让我换成1.6的,再未报错。多些我的同事
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2013-1-7 10:53:23 | 只看该作者
    回复 11# summercc2008

    如果模拟器的话,且开启1个,是不需要加设备名称的,默认为空即可指向该模拟器
    如果是手机设备的话,应该要指向手机设备
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2013-1-7 10:54:36 | 只看该作者
    回复 12# summercc2008

    原来如此,学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2014-7-13 22:56:30 | 只看该作者
    为什么只能启动主Activity?不能启动任意的acivity?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 01:14 , Processed in 0.076260 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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