MonkeyRunner的长按操作实现

发表于:2013-11-29 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:fjyxyz    来源:51Testing软件测试网博客

  前两天组内一同事让我帮忙写个自动化脚本,操作很简单,就是打开测试页面中的各个链接,但有个特殊需求,就是点击链接过程中按下去之后要有一个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'
版权声明:本文出自 fjyxyz 的51Testing软件测试博客:http://www.51testing.com/?414422
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号