monkeyrunner自動化測試

Android monkeyrunner自動化測試


 

monkeyrunner測試主要是通過編寫一個Python程序去安裝一個Android應用程序或測試包,運行它,向它發送模擬擊鍵,截取它的用戶界面圖片,並將截圖存儲於工作站上。由於SDK是舊版本,暫時無法獲取自定義屏幕上的組件焦點,所以通過截取屏幕的方式獲取組件的位置座標,然後利用觸摸的方式點擊組件。

關於monkeyrunner自動化測試網上的例子太多了,而且都是轉載的,基本上都是對官方文檔的翻譯,所以遇到很多問題都無法解決。下面附上一些簡單的例子。

Python 代碼複製內容到剪貼板
  1.    
  2. #導入程序測試所需要的模塊    
  3. from com.android.monkeyrunnerimport MonkeyRunner, MonkeyDevice     
  4. #連接當前對象,返回一個MonkeyDevice對象    
  5. device = MonkeyRunner.waitForConnection()      
  6. #安裝所要測試的android應用程序或測試包    
  7. device.installPackage('*******.apk')     
  8. #運行指定的Activity    
  9. device.startActivity(component='com.mzba.test.TestActivity')     
  10. #觸摸自動登錄複選框    
  11. device.touch(222,388,'DOWN_AND_UP')     
  12. #觸摸記住密碼複選框    
  13. device.touch(37,421,'DOWN_AND_UP'   
  14. #觸摸登錄按鈕    
  15. device.touch(271,475,'DOWN_AND_UP')     
  16. #測試暫停3秒鐘    
  17. MonkeyRunner.sleep(3.0   
  18. #截取屏幕截圖    
  19. result = device.takeSnapshot()     
  20. #將截圖保存至文件    
  21. result.writeToFile('login.png','png'

不過更新了sdk以後,發現press方法無法使用了,報錯如下:

device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')  TypeError: press: The 3rd argument is required

所以要換成另一種方法:

Python 代碼複製內容到剪貼板
  1.    
  2. device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP) 

更新了SDK的版本,增加了EasyMonkeyDevice的相關類,已經可以利用控件的id來進行交互。

Python 代碼複製內容到剪貼板
  1.    
  2. from com.android.monkeyrunnerimport MonkeyRunner, MonkeyDevice      
  3. from com.android.monkeyrunner.easyimport EasyMonkeyDevice      
  4. from com.android.monkeyrunner.easyimport By     
  5.      
  6. device = MonkeyRunner.waitForConnection()     
  7. easy_device = EasyMonkeyDevice(device)      
  8. easy_device.startActivity(component='com.xuanwu.etion/.SplashActivity')     
  9. #輸入用戶名    
  10. device.type('mzba'   
  11.      
  12. #觸摸密碼框,相當於獲取焦點    
  13. easy_device.touch(By.id('id/login_edit_pwd'), MonkeyDevice.DOWN_AND_UP)      
  14. #輸入密碼    
  15. device.type('888888'   
  16. #按下返回鍵,相當於關閉輸入法的彈出框    
  17. device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)    
  18.      
  19. #easy_device.touch(By.id('id/login_edit_account'), MonkeyDevice.DOWN_AND_UP)    
  20. #點擊登錄按鈕    
  21. easy_device.touch(By.id('id/login_btn'), MonkeyDevice.DOWN_AND_UP)   

附上官方文檔:

http://develo...concepts.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章