MonkeyRunner实例及使用说明

发表于:2015-11-13 13:22

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

 作者:kevin    来源:51Testing软件测试网采编

  了解了MonkeyRunner,现在上一个简单的实例(理论支持所有Android设备^_^),向左滑动屏幕2次,并在滑动前和滑动后进行截图:
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('./shotbegin.png','png')
#Drag screen
for i in range(1,3):
device.drag((200,300),(100,300),0.1,1)
MonkeyRunner.sleep(1)
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('./shotend.png','png')
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('./shotbegin.png','png')
#Drag screen
for i in range(1,3):
device.drag((200,300),(100,300),0.1,1)
MonkeyRunner.sleep(1)
# Takes a screenshot
result = device.takeSnapshot()
# Writes the screenshot to a file
result.writeToFile('./shotend.png','png')
  使用方法:将代码拷贝到记事本并保存为.py格式的文件(最好和MonkeyRunner放在同一目录),如Demo.py,然后运行CMD并进入MonkeyRunner目录,使用MonkeyRunner Demo.py运行,看下什么效果?
  实例详解:
  1.导入模块
  from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
  2.连接当前设备,并返回一个MonkeyDevice对象
  device = MonkeyRunner.waitForConnection()
  3.截图并保存
  result = device.takeSnapshot()
  result.writeToFile('./shotbegin.png','png')
  4.滑动屏幕2次:
  for i in range(1,3):
  device.drag((200,300),(100,300),0.1,1)
  MonkeyRunner.sleep(1)
  说明:这是Python中的一个for循环,意思是遍历1~3(不含3)所有整数,遍历做什么呢?第二行就是我们要做的事情,“drag”就是拖动事件指令,后面的括号里就是参考,表示从第一个坐标开始到一个坐标结束,0.1表示所用时间,最后的1可以理解为采样点,默认为10,这里设置的是1,在本实例中1和10区别不大。第三行就是等待的意思,滑动一次后等待1秒再继续。
  截图并保存
  result = device.takeSnapshot()
  result.writeToFile('./shotend.png','png')
  和第三步是一样的,只是保存的名字不一样,这样就实现了测试前和测试后的结果对比。
  是不是很简单?
  除了实例中的导入,截图,保存截图,滑动屏幕,还有很多方法,只要搞清楚怎么用了,剩下的就是自己排列组合来做成一个个的Case了。
  其它方法介绍:
  1.安装Android包,注意,此方法返回的返回值为boolean,由此可以判断安装过程是否正常 ;
  device.installPackage('myproject/bin/MyApplication.apk')
  device.removePackage ('com.example.android.notepad')
  print ('卸载成功')
  device.installPackage('ApiDemos.apk')
  print ('安装成功')
  2.启动一个Activity;
  device.startActivity (component='com.android.htccontacts/com.android.htccontacts.ContactsTabActivity')
  3.时延(秒);
  MonkeyRunner.sleep(3)
  4.触击屏幕;
  device.touch(507,72,"DOWN_AND_UP")
  5.执行adb shell命令;
  device.shell("input text goup01")
  6.发送按键指令
  按下HOME键 device.press('KEYCODE_HOME','DOWN_AND_UP')
  按下BACK键 device.press('KEYCODE_BACK','DOWN_AND_UP')
  按下下导航键 device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')
  按下上导航键 device.press('KEYCODE_DPAD_UP','DOWN_AND_UP')
  按下OK键 device.press('KEYCODE_DPAD_CENTER','DOWN_AND_UP')
  相应的按键对应的名称如下:
  home键:KEYCODE_HOME
  back键:KEYCODE_BACK
  send键:KEYCODE_CALL
  end键:KEYCODE_ENDCALL
  上导航键:KEYCODE_DPAD_UP
  下导航键:KEYCODE_DPAD_DOWN
  左导航:KEYCODE_DPAD_LEFT
  右导航键:KEYCODE_DPAD_RIGHT
  ok键:KEYCODE_DPAD_CENTER
  上音量键:KEYCODE_VOLUME_UP
  下音量键:KEYCODE_VOLUME_DOWN
  power键:KEYCODE_POWER
  camera键:KEYCODE_CAMERA
  menu键:KEYCODE_MENU
  以上信息基本够用了,若还有什么更“高级”方法,我会再加进来的,希望这些对大家有帮助。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号