Android monkeyrunner自動化測試
monkeyrunner測試主要是通過編寫一個Python程序去安裝一個Android應用程序或測試包,運行它,向它發送模擬擊鍵,截取它的用戶界面圖片,并將截圖存儲于工作站上。由于SDK是舊版本,暫時無法獲取自定義屏幕上的組件焦點,所以通過截取屏幕的方式獲取組件的位置坐標,然后利用觸摸的方式點擊組件。
關于monkeyrunner自動化測試網上的例子太多了,而且都是轉載的,基本上都是對官方文檔的翻譯,所以遇到很多問題都無法解決。下面附上一些簡單的例子。
#導入程序測試所需要的模塊 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice #連接當前對象,返回一個MonkeyDevice對象 device = MonkeyRunner.waitForConnection() #安裝所要測試的android應用程序或測試包 device.installPackage('*******.apk') #運行指定的Activity device.startActivity(component='com.mzba.test.TestActivity') #觸摸自動登錄復選框 device.touch(222,388,'DOWN_AND_UP') #觸摸記住密碼復選框 device.touch(37,421,'DOWN_AND_UP') #觸摸登錄按鈕 device.touch(271,475,'DOWN_AND_UP') #測試暫停3秒鐘 MonkeyRunner.sleep(3.0) #截取屏幕截圖 result = device.takeSnapshot() #將截圖保存至文件 result.writeToFile('login.png','png') |
不過更新了sdk以后,發現press方法無法使用了,報錯如下:
device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP') TypeError: press: The 3rd argument is required
所以要換成另一種方法:
device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP) 更新了SDK的版本,增加了EasyMonkeyDevice的相關類,已經可以利用控件的id來進行交互。 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice from com.android.monkeyrunner.easy import EasyMonkeyDevice from com.android.monkeyrunner.easy import By device = MonkeyRunner.waitForConnection() easy_device = EasyMonkeyDevice(device) easy_device.startActivity(component='com.xuanwu.etion/.SplashActivity') #輸入用戶名 device.type('mzba') #觸摸密碼框,相當于獲取焦點 easy_device.touch(By.id('id/login_edit_pwd'), MonkeyDevice.DOWN_AND_UP) #輸入密碼 device.type('888888') #按下返回鍵,相當于關閉輸入法的彈出框 device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP) #easy_device.touch(By.id('id/login_edit_account'), MonkeyDevice.DOWN_AND_UP) #點擊登錄按鈕 easy_device.touch(By.id('id/login_btn'), MonkeyDevice.DOWN_AND_UP) |
附上官方文檔:
http://develo...concepts.html
posted on 2013-12-20 09:23 順其自然EVO 閱讀(332) 評論(0) 編輯 收藏 所屬分類: android