dksg8782 发表于 2011-7-13 19:53:41

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

本人系菜鸟,写脚本的时候,经常忘记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")

lanse_rain 发表于 2011-8-1 18:22:26

你好,问一下,我写的脚本里也加了最后一句device.shell("input text goup01"),但是执行完脚本后,最后一句没有起到任何作用,不知道是为什么?请大虾不吝赐教,谢谢

shanxi 发表于 2011-8-1 19:07:38

MonkeyRunner做android的自动化并不能做得很深入,特别是点击坐标这种事,在不同分辨率的手机上失败无法避免。

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

lanse_rain 发表于 2011-8-2 10:17:44

有好的示例吗?分享一下吧,希望以后多交流。

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

purplerain 发表于 2011-8-4 18:04:49

这个是在pydev里面写的吗?

dksg8782 发表于 2011-8-13 17:00:17

回复 2# lanse_rain


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

dksg8782 发表于 2011-8-13 17:03:15

回复 3# shanxi


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

dksg8782 发表于 2011-8-13 17:05:19

回复 4# lanse_rain


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

dksg8782 发表于 2011-8-13 17:07:28

回复 5# purplerain


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

Astina 发表于 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

nancy0818 发表于 2011-8-24 15:42:45

用monkeyrunner运行py程序 为什么会报错呢 File "<stdin>", line 1
   monkeyrunner testing.py

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

请高人指教 怎么才能在monkeyrunner中运行py程序呢

nancy0818 发表于 2011-8-24 15:43:56

用monkeyrunner运行py程序 为什么会报错呢 File "<stdin>", line 1
   monkeyrunner testing.py

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

请高人指教 怎么才能在monkeyrunner中运行py程序呢

nancy0818 发表于 2011-8-25 16:19:33

回复 12# nancy0818

nancy0818 发表于 2011-8-25 16:20:55

回复 11# nancy0818


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

xmperfect 发表于 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


大家帮帮忙啊

yyuanxiang 发表于 2011-11-14 19:37:08

楼主,device.touch x,y的坐标是怎么定位的?

xuxd32 发表于 2012-5-7 14:20:18

谢谢朋友、希望有更多的思路,monkey也可以使用脚本,可以模拟touch 类事件,请问 有什么不同?自己还不清楚

yinhe625 发表于 2012-9-4 16:39:13

monkeyrunner的启动和简单操作我这边没啥问题,我想问下各位monkeyrunner怎么进行多设备测试呢?

shaynechu 发表于 2012-10-17 09:11:19

回复 3# shanxi


    赞同

yilian608 发表于 2015-10-12 16:10:57

xmperfect 发表于 2011-11-2 16:20
求救求救,我现遇到了和10楼同样的问题

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


请问下后面你是如何解决的
页: [1] 2
查看完整版本: MonkeyRunner API简单使用帮助.(附示例)