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);
}
}
