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'
最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
移动开发 Android开发 C++
【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(一)
【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(一)
124 0
【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(一)
|
Android开发
【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(二)
【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(二)
141 0
【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(二)
|
Android开发 Python
MonkeyRunner 模块
用python编写脚本   1.导入模块: MonkeyRunner MonkeyDevice MonkeyImage ps:如果给导入模块起别名,就应该使用别名,而不能使用原名,否则会出现错误。 from com.
1121 0
|
测试技术 API Android开发
MonkeyRunner简介
monkeyrunner工具提供了编写控制Android设备或仿真器从Android的代码之外程序的API。随着monkeyrunner,您可以编写安装一个Android应用程序或测试包,运行它,发送击键它,需要它的用户界面截图,并将截图工作站上的Python程序。
1408 0
|
Shell 测试技术 API
Android自动化测试之Monkeyrunner使用方法及实例
目前Android SDK里自带的现成的测试工具有monkey 和 monkeyrunner两个。大家别看这俩兄弟名字相像,但其实是完完全全不同的两个工具,应用在不同的测试领域。总的来说,monkey主要应用在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义发送的次数,以此观察被测应用程序的稳定性和可靠性,应用起来也比较简单,记住那几个命令就行了。
2479 0
|
测试技术 开发工具 Android开发
Android测试之Monkey Runner
什么是MonkeyRunner monkeyrunner是Android sdk中自带的一个通过接收测试脚本(使用python语言编写的)来执行功能性测试的工具。
1234 0
|
Android开发 C++ Java
07.Android Studio下Ndk开发(使用fmod播放声音)
(创建于2017/12/28) 已实现 注意几点: 1.main下cpp文件夹放置c文件和相关头文件 2.main下JniLibs文件夹放置第三方so文件 3.
1271 0