1. 程式人生 > >Android自動化測試之——MonkeyRunner(3)

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()