Android monkeyrunner自動化測試

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

關於monkeyrunner自動化測試網上的例子太多了,並且都是轉載的,基本上都是對官方文檔的翻譯,因此遇到不少問題都沒法解決。下面附上一些簡單的例子。android

 

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

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

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

因此要換成另外一種方法:ui

 

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

更新了SDK的版本,增長了EasyMonkeyDevice的相關類,已經能夠利用控件的id來進行交互。spa

 

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

附上官方文檔:翻譯

http://develo...concepts.htmlcomponent

相關文章
相關標籤/搜索