android中UIAUTOMATOR

UIAutomator:可用於單元測試、性能測試、壓力測試、ROM層級的測試、或是App間協作須跨進程的測試,對於Web測試則暫不支持。其優點如下:
官方支持更新:Android原生支持,測試依賴環境少,創建方便。
層次接口明晰:框架層次結果分明,API明晰,上手成本很低。
基於控件交互:支持Android原生控件解析,比座標交互兼容性更強。
不依賴於源碼:測試過程基於黑盒進行,對所有發行版本都可以測試。
事件等待優秀:在事件等待方面接口豐富,控制靈活精確,表現優秀。
支持跨進程測試: 在自動化框架中,具備此特性的不多,測試範圍在ROM層面。
優點:
(1)可以對所有操作進行自動化,操作簡單;
(2)不需要對被測程序進行重簽名,且,可以測試所有設備上的程序,比如某APP,比如撥號,比如~發信息等等
(3)對於控件定位,要比robotium簡單一點點
缺點:
(1)uiautomator需要android level 16以上纔可以使用,因爲在level 16及以上的API裏面才帶有uiautomator工具
(2)如果想要使用resource-id定位控件,則需要level 18及以上纔可以
(3)對中文支持不好(不代表不支持,第三方jar可以實現

使用:本人Studio3.5
!在這裏插入圖片描述在這裏插入圖片描述!導入的依賴
在SDK目錄下tools/bing/uiautomatorviewer.bat雙擊打開視圖共具
在androidText目錄下創建測試類,
在測試類中寫一個測試方法,方法名必須以test開頭,並拋異常
// 獲取設備對象
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
UiDevice uiDevice = UiDevice.getInstance(instrumentation);
// 獲取上下文
Context context = instrumentation.getContext();
// 啓動測試App
Intent intent = context.getPackageManager().getLaunchIntentForPackage(“com.yang.desig nsupportdemo”);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
//測試方法
@Test
public void testApp() {
try {
uiDevice.pressHome();
Thread.sleep(1000);
UiObject testAuto = uiDevice.findObject(new UiSelector().text(“Test”));
testAuto.click();
Thread.sleep(1000);
/可以通過QQ截屏獲取控件的座標來進行點擊/
/uiDevice.click(924, 626);/
UiObject home = uiDevice.findObject(new UiSelector().text(“首頁”));
home.click();
Thread.sleep(1000);
UiObject button = uiDevice.findObject(new UiSelector().text(“BUTTON”));
button.click();

    } catch (Exception e) {
        e.getMessage();
    }

}

運行:右鍵點擊Run測試方法,查看Run運行log
詳細Api可查看同僚的微博
https://blog.csdn.net/fmc088/article/details/80532993

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