使用 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)
}