51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 15784|回复: 22
打印 上一主题 下一主题

MonkeyRunner API简单使用帮助.(附示例)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-7-13 19:53:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人系菜鸟,写脚本的时候,经常忘记API使用方法,现列举常用的API并附上示例,希望在大家写脚本的时候有帮助!如果有问题,请留言给我,谢谢!
1. #导入模块;
    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

2. #连接当前设备,并返回一个MonkeyDevice对象;
    device = MonkeyRunner.waitForConnection()
    if not device:
        print "Please connect a device to start!"
    else:
        print "Start "
   
3. #安装Android包,注意,此方法返回的返回值为boolean,由此可以判断安装过程是否正常 ;
    device.installPackage('myproject/bin/MyApplication.apk')

4. #启动一个Activity;
   device.startActivity(component='com.android.htccontacts/com.android.htccontacts.ContactsTabActivity')

5. #截图;
    result = device.takeSnapshot()
    result.writeToFile('C:\\Users\\Martin\\Desktop\\test.png','png')

6. #时延(秒);
    MonkeyRunner.sleep(3)

7. #滑动屏幕;
    for i in range(1,70):
        device.drag((250,850),(250,110),0.1,10)
    for i in range(1,70):
       device.drag((250,110),(250,850),0.1,10)
   MonkeyRunner.sleep(1)

8. #触击屏幕;
    device.touch(507,72,"DOWN_AND_UP")

9. #执行adb shell命令;
    device.shell("input text goup01")
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-8-1 18:22:26 | 只看该作者
你好,问一下,我写的脚本里也加了最后一句device.shell("input text goup01"),但是执行完脚本后,最后一句没有起到任何作用,不知道是为什么?请大虾不吝赐教,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-8-1 19:07:38 | 只看该作者
MonkeyRunner做android的自动化并不能做得很深入,特别是点击坐标这种事,在不同分辨率的手机上失败无法避免。

一般是用java 语法特性Instrumentation,结合ROBOTIUM和反射来做会做的比较深入和彻底!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-8-2 10:17:44 | 只看该作者
有好的示例吗?分享一下吧,希望以后多交流。

我最近在研究android自动化测试工具,希望各位大虾能帮帮我,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2011-8-4 18:04:49 | 只看该作者
这个是在pydev里面写的吗?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2011-8-13 17:00:17 | 只看该作者
回复 2# lanse_rain


可能的原因有:
1. 设备屏幕上的当前焦点没有在输入框中;
2. 没有配置adb的环境变量;
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2011-8-13 17:03:15 | 只看该作者
回复 3# shanxi


嗯,谢谢大侠指点:
Monkey Runner入门比较简单,适合初学者.不指望它能进行非常深入的测试,但是可以辅助手工测试,特别是在制作测试资料的时候特别有用.
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2011-8-13 17:05:19 | 只看该作者
回复 4# lanse_rain


工作两年多了,觉得自动化测试应用很有限,所以希望你可以研发性能测试方面的工具或者辅助手工测试的工具.自动化测试工具,在手机测试上的应用有限.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2011-8-13 17:07:28 | 只看该作者
回复 5# purplerain


这个是用记事本写的,因为是开发一些小型的程序,如果稍微大一点就用其他的文本编辑工具,不常用,所以没有pydev.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2011-8-18 16:40:40 | 只看该作者
请教各位大虾,本人运行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
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2011-8-24 15:42:45 | 只看该作者
用monkeyrunner运行py程序 为什么会报错呢 File "<stdin>", line 1
   monkeyrunner testing.py

我把py程序也放在tools目录下面了,用的代码是 monkeyrunner testing.py

请高人指教 怎么才能在monkeyrunner中运行py程序呢
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2011-8-24 15:43:56 | 只看该作者
用monkeyrunner运行py程序 为什么会报错呢 File "<stdin>", line 1
   monkeyrunner testing.py

我把py程序也放在tools目录下面了,用的代码是 monkeyrunner testing.py

请高人指教 怎么才能在monkeyrunner中运行py程序呢
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2011-8-25 16:19:33 | 只看该作者
回复 12# nancy0818
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2011-8-25 16:20:55 | 只看该作者
回复 11# nancy0818


找到问题原因了
运行py脚本的时候要在tools目录下,而不是monkeyrunner命令行
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2011-11-2 16:20:49 | 只看该作者
    本帖最后由 xmperfect 于 2011-11-2 16:37 编辑

    求救求救,我现遇到了和10楼同样的问题

    我已经打开一个模拟器了呀


    请教各位大虾,本人运行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


    大家帮帮忙啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2011-11-14 19:37:08 | 只看该作者
    楼主,  device.touch x,y的坐标是怎么定位的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-11-7 08:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2012-5-7 14:20:18 | 只看该作者
    谢谢朋友、希望有更多的思路,monkey也可以使用脚本,可以模拟touch 类事件,请问 有什么不同?自己还不清楚
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2012-9-4 16:39:13 | 只看该作者
    monkeyrunner的启动和简单操作我这边没啥问题,我想问下各位monkeyrunner怎么进行多设备测试呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2012-10-17 09:11:19 | 只看该作者
    回复 3# shanxi


        赞同
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2015-10-12 16:10:57 | 只看该作者
    xmperfect 发表于 2011-11-2 16:20
    求救求救,我现遇到了和10楼同样的问题

    我已经打开一个模拟器了呀

    请问下后面你是如何解决的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 04:36 , Processed in 0.084783 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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