Android自动化测试之——MonkeyRunner(3)

本文主要介绍MonkeyDevice的方法。

上文中,使用MonkeyRunner方法连接设备并返回一个MonkeyDevice对象,使用该对象调用MonkeyDevice方法可实现对设备的操作。主要包括:点击、拖拽、截图、按键、输入内容

一、常量

MonkeyDevice的touch()、press()、type()方法,需要用到这些常量

  • DOWN:按下事件,touch()、press()方法用到
  • UP:抬起事件,touch()、press()方法用到
  • DOWN_AND_UP:按下马上抬起,touch()、press()、type()三个方法用到

二、MonkeyDevice方法

1、startActivity()

打开应用

device.startActivity("com.android.browser/.BrowserActivity")

2、touch(integer x, integer y, integer tpye)

点击某个坐标点,发送事件。以下两种方式都可以

device.touch(200,300,MonkeyDevice.DOWN_AND_UP)
device.touch(200,300,'DOWN_AND_UP')

3、press(string name, dictionary type)

发送指定类型指定键码的事件

#按下HOME键
device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP) 
#按下BACK键
device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP) 

KeyCode: 

home键:   KEYCODE_HOME 
back键:     KEYCODE_BACK 
拨号键:     KEYCODE_CALL 
挂断键:     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
更多见:http://www.android-doc.com/reference/android/view/KeyEvent.html
 
4、type(string message)
将消息中包含的字符发送到此设备,就好像它们在设备的键盘上键入了一样。这相当于使用键事件类型DOWN_AND_UP为消息中的每个键代码调用press()。
device.type("zhuting")

5、installPackage(string path)

device.installPackage('D:\apk\taobao.apk') # 安装包

6、removePackage(string package)

device.removePackage('com.tencent.mm') # 卸载包

7、takeSnapshot()

image1 = device.takeSnapshot()

8、reboot()

device.reboot() # 重启系统

9、wake()

唤醒屏幕

10、drag(tuple start, tuple end, float duration, integer steps)

在这个设备的屏幕上模拟拖动手势(触摸、保持和移动)

start:开始坐标
end: 结束坐标
duration :拖动持续时间(以秒为单位),默认1.0秒
steps: 插值点时要采取的步骤。默认值是10

device.drag((200,600),(200,300),0.1,10) # 可实现滑动操作,上滑操作

附demo1.py

#encoding:utf-8
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage

#连接设备
device = MonkeyRunner.waitForConnection(3,'emulator-5554')
MonkeyRunner.sleep(2)
print('connect device success')

'''
#安装应用
device.installPackage('D:\apk\taobao.apk')
print('install taobao')
MonkeyRunner.sleep(5)

#卸载应用
device.removePackage('com.tencent.mm')
print('uninstall taobao')
MonkeyRunner.sleep(5)
'''

#打开应用,打开浏览器
device.startActivity("com.android.browser/.BrowserActivity")
print('open browser')
MonkeyRunner.sleep(5)

#点击网址框
device.touch(200,80,"DOWN_AND_UP")
MonkeyRunner.sleep(2)

#输入网址
device.type("www.baidu.com")
device.touch(124,151,"DOWN_AND_UP")
MonkeyRunner.sleep(5)

#点击搜索框
device.touch(100,370,"DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.type("zhuting")
MonkeyRunner.sleep(2)
device.touch(390,162,"DOWN_AND_UP")  #点击搜索
MonkeyRunner.sleep(5)

#截图
image = device.takeSnapshot()
image.writeToFile('E:\autoTest\test_02.png','png')  #保存截图
MonkeyRunner.sleep(5)

#HOME键
device.press("KEYCODE_HOME","DOWN_AND_UP")
MonkeyRunner.sleep(2)

device.drag((450,500),(50,500),0.5,10) # 可实现滑动操作,左滑
MonkeyRunner.sleep(5)

device.press('KEYCODE_POWER',MonkeyDevice.DOWN_AND_UP) # 电源键休眠
MonkeyRunner.sleep(2)
device.wake() # 唤醒设备

#重启系统
device.reboot()
原文地址:https://www.cnblogs.com/fancy0158/p/10074663.html