使用 UIAutomatorViewer 編寫更復雜的測試

為了能夠編寫更復雜的 UI 測試,需要使用 UIAutomatorViewer 。位於 / tools /的工具會生成一個全屏截圖,其中包括當前顯示檢視的佈局。請參閱後續圖片以瞭解所顯示的內容:

StackOverflow 文件

對於 UI 測試,我們正在尋找 resource-idcontent-desc 或其他東西來識別檢視並在我們的測試中使用它。

所述 uiautomatorviewer 經由終端執行。

如果我們現在想要點選應用程式按鈕,然後開啟一些應用程式並向左滑動,這就是測試方法的樣子:

public void testOpenMyApp() throws Exception {
    // wake up your device
    device.wakeUp();

    // switch to launcher (hide the previous application, if some is opened)
    device.pressHome();

    // enter applications menu (timeout=200ms)
    device.wait(Until.hasObject(By.desc(("Apps"))), 200);
    UiObject2 appsButton = device.findObject(By.desc(("Apps")));
    assertNotNull(appsButton);
    appsButton.click();

    // enter some application (timeout=200ms)
    device.wait(Until.hasObject(By.desc(("MyApplication"))), 200);
    UiObject2 someAppIcon = device.findObject(By.desc(("MyApplication")));
    assertNotNull(someAppIcon);
    someAppIcon.click();

    // do a swipe (steps=20 is 0.1 sec.)
    device.swipe(200, 1200, 1300, 1200, 20);
    assertTrue(isSomeConditionTrue)
}