Android 自动化测试工具

Android 自动化测试工具

UiAutomator 工具

UiAutomator 2.0 优点

  • 获取应用 Context ,可以使用 Android 服务和接口
  • 基于 Junit4,无须继承于任何父类,方法名不限,支持使用注解 Annotation
  • 测试执行可使用 Instrumentation 命令方式及 gradle 方式
  • API 优化,新增 UiObject2、Until、By、BySelector 等

添加依赖

androidTestImplementation  'com.android.support.test.uiautomator.uiautomator-v18:2.1.2'

使用工具

  • 找到路径中的工具

    Android\Sdk\tools\bin\uiautomatorviewer.bat

  • 双击文件,在 Android 模拟器打开的情况下,会自动打开 UI Automator Viewer ,以获取快照

  • 右边栏会显示选中的资源对应的属性

写自动化测试代码

@RunWith(AndroidUnit4.class)
public class DemoTest{
    //声明测试变量

    @Before
    publi void initVariable(){
        //初始化测试变量
    }

    @Test
    public void realTest throw RemoteException{
        //测试代码
    }


    @After
    public void afterTest(){
        //测试完成后
    }
}

测试常用事件

    1. 获取测试设备

      public Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation;
      public UiDevice mUideviece = UiDevice.getInstance(mInstrumentation);
      点击最近任务键

      mUideviece.pressRecentApps();

    1. 查找对应 UI 元素,方式如下

    - 通过 ID (ID)查找

    mUidevice.findObject(By.res(ID))
    

    - 通过名称(TEXT)查找

    mUidevice.findObject(By.text(TEXT))
    
    1. 常用组件操作
  • 点击

    • public boolean click()
  • 长按
    • public boolean longClick()
  • 拖动
    • public void drag(Point dest)
  • 输入

    • public boolean setText(String text)
  • 点击某个坐标

    • click(int x,int y)
  • 按键
    • pressKeyCode(int keyCode)
  • 滑动
    • swip(int startX,int startY,int endX,int endY,int steps)

一些实例

  • 根据资源 ID (“com.android.calculator2:id/digit_7”)产生点击事件

    mUidevice.findObject(By.res("com.android.calculator2:id/digit_7")).click();
    
  • 根据 Text 名称产生点击事件

    mUidevice.findObject(By.text("7")).click();
    
  • 根据资源 ID (“com.android.settings:id/switch_widget”)产生开关的点击事件

    mUdidevice.findObject(By.res("com.android.settings:id/switch_widget").checked(false)).click();
    

猜你喜欢

转载自blog.csdn.net/baidu_33221362/article/details/81287304