51Testing软件测试论坛

标题: MonkeyRunner API简单使用帮助.(附示例) [打印本页]

作者: dksg8782    时间: 2011-7-13 19:53
标题: 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
你好,问一下,我写的脚本里也加了最后一句device.shell("input text goup01"),但是执行完脚本后,最后一句没有起到任何作用,不知道是为什么?请大虾不吝赐教,谢谢
作者: shanxi    时间: 2011-8-1 19:07
MonkeyRunner做android的自动化并不能做得很深入,特别是点击坐标这种事,在不同分辨率的手机上失败无法避免。

一般是用java 语法特性Instrumentation,结合ROBOTIUM和反射来做会做的比较深入和彻底!
作者: lanse_rain    时间: 2011-8-2 10:17
有好的示例吗?分享一下吧,希望以后多交流。

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

作者: purplerain    时间: 2011-8-4 18:04
这个是在pydev里面写的吗?
作者: dksg8782    时间: 2011-8-13 17:00
回复 2# lanse_rain


可能的原因有:
1. 设备屏幕上的当前焦点没有在输入框中;
2. 没有配置adb的环境变量;
作者: dksg8782    时间: 2011-8-13 17:03
回复 3# shanxi


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


工作两年多了,觉得自动化测试应用很有限,所以希望你可以研发性能测试方面的工具或者辅助手工测试的工具.自动化测试工具,在手机测试上的应用有限.
作者: dksg8782    时间: 2011-8-13 17:07
回复 5# purplerain


这个是用记事本写的,因为是开发一些小型的程序,如果稍微大一点就用其他的文本编辑工具,不常用,所以没有pydev.
作者: Astina    时间: 2011-8-18 16: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
用monkeyrunner运行py程序 为什么会报错呢 File "<stdin>", line 1
   monkeyrunner testing.py

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

请高人指教 怎么才能在monkeyrunner中运行py程序呢
作者: nancy0818    时间: 2011-8-24 15:43
用monkeyrunner运行py程序 为什么会报错呢 File "<stdin>", line 1
   monkeyrunner testing.py

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

请高人指教 怎么才能在monkeyrunner中运行py程序呢
作者: nancy0818    时间: 2011-8-25 16:19
回复 12# nancy0818
作者: nancy0818    时间: 2011-8-25 16:20
回复 11# nancy0818


找到问题原因了
运行py脚本的时候要在tools目录下,而不是monkeyrunner命令行
作者: xmperfect    时间: 2011-11-2 16:20
本帖最后由 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
楼主,  device.touch x,y的坐标是怎么定位的?
作者: xuxd32    时间: 2012-5-7 14:20
谢谢朋友、希望有更多的思路,monkey也可以使用脚本,可以模拟touch 类事件,请问 有什么不同?自己还不清楚
作者: yinhe625    时间: 2012-9-4 16:39
monkeyrunner的启动和简单操作我这边没啥问题,我想问下各位monkeyrunner怎么进行多设备测试呢?
作者: shaynechu    时间: 2012-10-17 09:11
回复 3# shanxi


    赞同
作者: yilian608    时间: 2015-10-12 16:10
xmperfect 发表于 2011-11-2 16:20
求救求救,我现遇到了和10楼同样的问题

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

请问下后面你是如何解决的
作者: yilian608    时间: 2015-10-12 16:11
xmperfect 发表于 2011-11-2 16:20
求救求救,我现遇到了和10楼同样的问题

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

请问下后面你是如何解决的,困扰我很久了
作者: fengye1113    时间: 2015-11-23 15:01
学习了,谢谢分享!
作者: cuikejie123    时间: 2016-5-26 15:34
device.shell()这一句不知道有什么用




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