Android UI 自动化测试之UiDevice

来源:互联网 发布:矩阵的秩8个性质及证明 编辑:程序博客网 时间:2024/05/21 12:54
  1. UiDevice介绍
    UiDevice代表设备状态,为单例模式
    具体功能:
    (1)获取设备信息,屏幕分辨率,旋转状态,亮灭屏状态等
    (2)操作:按键,坐标操作,滑动,拖拽,灭屏唤醒屏幕,截图等
    (3)监听器功能

    //容易造成空指针异常//      getUiDevice().pressMenu();//      getUiDevice().pressHome();//     一般使用下列方法    UiDevice.getInstance().pressMenu();UiDevice.getInstance().pressHome();
  2. 按键与 KEYCODE使用
    手机常见按键
    (1) HOME HOME 键
    (2)MENU 菜单键
    (3)BACK 返回键
    (4)VOLUME_UP 音量加
    (5)VOLUME_DOWN 音量减
    (6)RecentApps 最近使用 App
    (7)POWER 电源键
    (8)Dpad 上下左右键
    (9)….
    按键 API说明

        //按键 API        //返回        UiDevice.getInstance().pressBack();        //轨迹球中点按键        UiDevice.getInstance().pressDPadCenter();        //轨迹球上按键        UiDevice.getInstance().pressDPadUp();        //轨迹球下按键        UiDevice.getInstance().pressDPadDown();        //轨迹球左按键        UiDevice.getInstance().pressDPadLeft();        //轨迹球右按键        UiDevice.getInstance().pressDPadRight();        //删除        UiDevice.getInstance().pressDelete();        //回车        UiDevice.getInstance().pressEnter();        //Home 键        UiDevice.getInstance().pressHome();        //键盘代码 keycode        //UiDevice.getInstance(int keyCode,int metaState);        //UiDevice.getInstance(int keyCode);        //Menu 键盘        UiDevice.getInstance().pressMenu();        //最近使用 app        UiDevice.getInstance().pressRecentApps();        //搜索        UiDevice.getInstance().pressSearch(); KEYCODE 键盘映射码 (1)keyEvent 按键事件//小写        UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A);        //大写        UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A,1);

3.获取坐标与坐标点击

 (1)方法名:click(int x,int y)  使用坐标点击屏幕 (2)方法名:getDisplayHeight() 获取屏幕高度 (3)方法名:getDisplayWidth() 获取屏幕宽度

4.拖拽与滑动
拖拽:将一个组件从一个坐标点移动到另一个坐标处
滑动:从一个坐标顶移动到另一个坐标点
步长:从一点滑动到另一点使用的时间(1步长是5毫秒)

 (1)方法名:drag(int starX,int startY,int endX int endY,int steps)  拖动对象从一个坐标拖动到另一个坐标 (2)方法名:swipe(Poiint[] segments,int segmentSteps) 在点阵列中滑动,5ms 一步 (3)方法名:swipe(int starX,int startY,int endX int endY,int steps)通过坐标滑动屏幕

5.旋转屏幕
旋转方向;4个方向,分别为0度,90度,180度,270度
重力感应器
固定位置与物理旋转

 (1)方法名: setOrientationLeft() 通过禁用传感器,然后模拟设备向左转,并且固定位置 (2)方法名: setOrientationNatural() 通过禁用传感器,然后模拟设备转到其自然默认的方向,并且固定位置 (3)方法名: setOrientationRight() 通过禁用传感器,然后模拟设备向右转,并且固定位置 (4)方法名: sunfreezeRoation() 重新启用传感器和允许物理旋转 (5)方法名: isNaturalOrientation() 检测设置是否处于默认旋转状态 (6)方法名: getDisplayRotation() 返回当前的显示旋转,0度,90度,180度,270度,值分别为0123 (7)方法名:freezeRoation() 禁用传感器和冻结装置屋里旋转在其当前旋转状态

6.灭屏与唤醒屏幕
灭屏:按电源键将屏幕熄灭
唤醒屏幕:在灭屏状态下安电源键点亮屏幕

(1)方法名: wakeUp() 模拟按电源键,如果屏幕是唤醒的没有任何作用(2)方法名: sleep() 模拟按电源键,如果屏幕已经是关闭的则没有任何作用(3)方法名:isScreenOn() 检查屏幕是否亮屏

7.截图与等待空闲

截图

(1)方法名:takeScreenshot(File storePath) 把当前窗口截图并将其存储为 png 默认1.0f 规模(原尺寸文件)和90%质量,参数为 file 类的文件路径(2)takeScreenshot(File storePath,float scale,int quality) 把当前窗口截图为 png 格式图片,可以自定义缩放比例与图片质量参数说明:storePath:存储路径,必须为 png 格式Scale: 缩放比例,1.0为原图Quality: 图片压缩质量,范围为0-100

等待空闲

(1)waitForIdle(long timeout)自定义超时等待当前应用处于空闲状态(2)waitForIdle()等待当前应用处于空闲状态,默认等待10s(3)waitForWindowUpdate(String packageName,long timeout) 等待窗口内容更新事件的发生

8.获取包名&开启通知栏&快速设置&获取布局文件
包名,通知栏,快速设置,布局文件

(1)getCurrentPackageName() 获取当前界面的包名(2)dumpWindowHierachy(String fileName)获取当前界面布局文件,保存在/ data/local/tmp 目录下(3) openNotification() 打开通知栏(4)openQuickSettings 打开快速设置
原创粉丝点击