潜心研究android自动化测试

MonkeyRunner的长按操作实现

上一篇 / 下一篇  2013-11-28 01:00:00 / 个人分类:Android自动化技术-monkeyrunner

    前两天组内一同事让我帮忙写个自动化脚本,操作很简单,就是打开测试页面中的各个链接,但有个特殊需求,就是点击链接过程中按下去之后要有一个60~100ms的延迟,之后才离开焦点。
    思考了一圈可用的开源工具后,感觉只有monkeyrunner最方便,因为已经有现成的方法(device.touch)和参数(DOWN_AND_UP)可用,但实际操作过程中发现,device.touch(100,100,'DOWN')并不是预期的一直按下状态。查看了monkeyrunner的源码后,看到DOWN,UP和DOWN_AND_UP都是MonkeyDevice下的方法,于是使用了这样的形式使用:device(100,100,MonkeyDevice.DOWN),测试成功。
    总结,MonkeyRunner的长按方式:
    device(100,100,MonkeyDevice.DOWN)
    MonkeyRunner.sleep(1)
    device(100,100,MonkeyDevice.UP)
    当然,也可以通过drag方法实现:device.drag((100,100),(100,100),1,10)
    两种方式效果一样,但实现原理是不同的,可以根据自己需求选择。
    附上帮助同事实现的脚本:
    import random
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi
device=mr.waitForConnection()
#创建测试目录
device.press('KEYCODE_HOME','DOWN_AND_UP')
mr.sleep(1)
#打开新浪
device.touch(120,200,'DOWN_AND_UP')
mr.sleep(15)
url_x=55
url_y=200
#分别点击导航的各个链接
for i in range(1,19):
    #长按实现方式      
   #device.drag((url_x,url_y),(url_x,url_y),0.2,1)
    randomNum=random.uniform(0.06,0.1)
    device.touch(url_x,url_y,md.DOWN)    
    mr.sleep(randomNum)    
    device.touch(url_x,url_y,md.UP)
    print "sina:",i
    print "sleep time:",randomNum
    mr.sleep(15)
    device.press('KEYCODE_BACK','DOWN_AND_UP')
    url_x+=85
    if url_x==480:
        url_x=55
        url_y+=45   
else:
    print 'end'

TAG:

引用 删除 lena.pan   /   2013-12-11 12:04:01
5
Asia 引用 删除 张亚洲   /   2013-12-10 19:33:22
5
51Testing小编的个人空间 引用 删除 zaza9084   /   2013-11-28 10:58:50
您好,我是51Testing软件测试网的编辑,您的本篇博文将在近日被推荐至51Testing软件测试网首页发表~
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

Open Toolbar