快學UiAutomator各種框架介紹


Monkey

編寫語言:命令行
運行環境:使用adb連接PC運行
測試對象:Android平台自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常。主要測試客戶端應用的穩定性健壯性
測試限制:主要是做隨機模擬用戶操作移動端的操作

MonkeyRunner

編寫語言:py 
運行環境:py環境,使用adb連接PC運行
測試對象:UI測試,功能測試回歸測試,並且可以自己定義測試擴展,靈活性較大。
測試限制:主要使用坐標,邏輯判斷較差

UiAutomator

編寫語言:java
運行環境:使用adb連接PC運行,啟動測試
測試對象:主要用於UI功能自動化和UI測試,快速、運行簡單
測試限制:是通過以控件的方式來定位,當然也是支持坐標軸的方式來定位,權限控制不足,無法像Instrumentation那樣使用

Instrumentation

編寫語言:java
運行環境:使用adb連接PC運行,啟動測試
測試對象:主要用於白盒測試和UI測試
測試限制:單個Activity測試,需要與測試相同應該的簽名

Robotium

編寫語言:java基於Instrumentation封裝
運行環境:使用adb連接PC運行,啟動測試
測試對象:主要用於白盒測試和UI測試
測試限制:單個Activity測試,需要與測試相同應該的簽名

各種框架編寫代碼風格

Monkeyrunner代碼風格實例

device = Monkeyrunner.waitForConnection()等待連接手機設備
device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP)點擊Home鍵

Robotium

solo.clickOnMenuItem("Add note")
solo.goBack();

Instrumentation

mActivity.runOnUiTread(new Runnable(){
          public void run(){
              mSpinner.requestFocus();
}         
})        

UIAutomator

public class Test extends UiAutomatorTestCase {
	public void testDemo() throws UiObjectNotFoundException{
		UiDevice.getInstance().pressHome();
		UiObject browserObject = new UiObject(new UiSelector().text("Browser"));
		browserObject.clickAndWaitForNewWindow();
		UiObject editoObject = new UiObject(new UiSelector().className("android.widget.EditText"));
		editoObject.click();
		UiDevice.getInstance().pressDelete();
		editoObject.setText("www.baidu.com");
		UiDevice.getInstance().pressEnter();
		sleep(2000);
	}
}

  

  

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM