zoukankan      html  css  js  c++  java
  • uiautomator 1使用简介

    1、生成build.xml
    android create uitest-project -n jar_name  -t id -p projectPah
    2、修改build.xml 改成默认执行
    build.xml
    <project name="AutoRunner" default="help">
    修改为
    <project name="AutoRunner" default="build">
    3、push jar包到手机
    adb push jarName data/local/tmp
    4、执行测试
    adb shell uiautomator runtest jarName -c classFullName[#test name]
    快速调试命令:
    adb shell uiautomator runtest <JARS> -c <CLASSES> [options]
    <JARS> 指定运行的jar包名次,位于data/local/tmp下
    -c <CLASSES>  测试一个类下的所有用例package_name.class_name;
    测试特定的某个方法package_name.class_name#method_name
    可以指定多个-c
    如果不指定-c,则运行整个jar包下的所有用例
    --nohup 指定该参数,可以断开PC进行运行测试用了
    -e <name> <value> 传入键值对到测试程序中,可用于一些需要变化的参数的传入
    代码中通过Bundle bundle = getParams();获取Bundle
    类继承UIAutomatorTestCase
    一、UiDevice代表设备状态,该类是单例模式
     1、获取设备信息:屏幕分辨率、旋转状态、亮灭屏等
     2、操作:按键、坐标、滑动、拖拽、灭屏唤醒、截图等
     3、监听功能
     
    1、手机按键
        HOME
        MENU
        BACK
        VOLUME_UP
        VOLUME_DOWN
        RecentAppsPOWER
        Dpad
    返回值 方法名 描述
    boolean     pressBack()     模拟短按返回back键
    boolean     pressDPadCenter()     模拟按轨迹球中点按键
    boolean     pressDPadDown()     模拟轨迹球向下按键
    boolean     pressDPadLeft()     模拟轨迹球向左按键
    boolean     pressDPadRight()     模拟轨迹球向右按键
    boolean     pressDPadUp()     模拟轨迹球向上按键
    boolean     pressDelete()     模拟短按删除delete按键
    boolean     pressEnter()     模拟短按回车键
    boolean     pressHome()     模拟短按HOME键
    boolean     pressKeyCode(int keyCode, int metaState)     模拟短按键盘代码keycode
    boolean     pressKeyCode(int keyCode)     模拟短按键盘代码keycode
    boolean     pressMenu()     模拟短按menu键
    boolean     pressRecentApps()     模拟短按最近使用程序
    boolean     pressSearch()     模拟短按搜索键
    KEYCODE 键盘映射码
    1)KeyEvent 按键事件
    2)META Key
    辅助功能键: ALT、SHIFT、CAPS_LOCK
    列            激活状态                               metaState
    base        META_key未被激活                            0
    caps        SHIFT或CAPS_LOCK被激活时                    1
    fn          ALT被激活                                   2
    caps_fn     ALT,SHIFT或CAPS_LOCK同时被激活时           3
    UiSelect 代表搜索一种搜索条件,可以在当前界面查询和获取特定元素,如果获取到多个元素则返回布局层次结构上第一个匹配的元素
    四种匹配关系:完全匹配(text)、包含匹配(contains)、正则匹配(matches)、开始匹配(startsWith)
    节点关系:父(parent)、子(children)、兄弟(sibling)、先辈(ancestor)、后代(descendant)
    UiSelector  text(String text)           文本
    UiSelector  textContains(String text)   文本包含
    UiSelector  textMatches(String regex)   文本正则
    UiSelector  textStartsWith(String text) 文本起始匹配
    UiSelector  description(String text)           描述
    UiSelector  descriptionContains(String text)   描述包含
    UiSelector  descriptionMatches(String regex)   描述正则
    UiSelector  descriptionStartsWith(String text) 描述起始匹配
    UiSelector  className(String className)     类名
    UiSelector  classNameMatches(String regex)  正则类名
    1)class.getName方式
    2)完整类名方式:android.widget.LinearLayout
    3)正则方式
    4)常量方式 自己建立一个常用的常量类
    UiSelector  packageName(String name)            包名
    UiSelector  packageNameMatches(String regex)    包名正则
    索引  index       在同级中兄弟节点的编号,按先后顺序
    实例  instance    在同一个布局文件,同一类型的编号,按先后顺序
    UiSelector  index(int index)        索引
    UiSelector  instance(int instance)  实例
    UiSelector  checked(boolean val)        选择属性
    UiSelector  clickable(boolean val)      可点击属性
    UiSelector  enabled(boolean val)        enabled属性
    UiSelector  focusable(boolean val)      焦点属性
    UiSelector  focused(boolean val)        当前焦点属性
    UiSelector  longClickable(boolean val)  长按属性
    UiSelector  scrollable(boolean val)     滚动属性
    UiSelector  selected(boolean val)       背景选择属性
    UiSelector  childSelector(UiSelector selector)  子类,递归查找,找到第一个就停止
    UiSelector  fromParent(UiSelector selector)     从父类,递归查找,找到第一个就停止
    UiSelector  resourceId(String id)               资源ID
    UiSelector  resourceIdMatches(String regex)     资源ID正则
    二、UiObject  代表一个组件对象,对象有许多模拟实际操作手机的方法和属性;
    点击与长按对象
    拖拽与滑动对象
    输入文本与清除文本
    获取对象的属性与属性的判断
    手势的操作
    判断对象是否存在
    boolean click() 点击对象
    boolean clickAndWaitForNewWindow(long timeout) 点击对象,等待新窗口出现,参数为等待超时时长
    boolean clickAndWaitForNewWindow() 点击对象,等待新窗口出现
    boolean clickBottomRight() 点击对象的右下角
    boolean clickTopLeft() 点击对象的左上角
    boolean longClick() 长按对象,对对象执行长按操作
    boolean longClickBottomRight() 长按对象的右下角
    boolean longClickTopLeft() 长按对象的左上角
    boolean dragTo(UiObject destObj, int steps) 拖拽对象到另一个对象位置上,步长可设置拖动的速度
    boolean dragTo(int destX, int destY, int steps) 拖拽对象到屏幕某个坐标位置上,步长可设置拖动速度
    boolean swipeDown(int steps) 拖动对象往下滑动
    boolean swipeLeft(int steps) 拖动对象往左滑动
    boolean swipeRight(int steps) 拖动对象往右滑动
    boolean swipeUp(int steps) 拖动对象往上滑动
    boolean setText(String text) 在对象中输入文本
    void clearTextField() 清除编辑框中的文本
    输入文本与清除文本实现步骤说明
    1)输入文本:清除文本—输入文本
    2)清除文本:长按—清除
    Rect getBounds() 获得对象矩形坐标,矩形左上角坐标与右下角坐标
    int getChildCount() 获得下一级子类数量
    String getClassName() 获得对象类名属性的类名文本
    String getContentDescription() 获得对象的描述属性的描述文本
    String getPackageName() 获得对象包名属性的包名文本
    String getText() 获得对象的文本属性中的文本
    Rect getVisibleBounds() 返回可见视图的范围,如果视图的部分是可见的,只有可见部分报告的范围
    UiObject getChild(UiSelector selector) 获得对象的子类对象,可以递归获取子孙当中某个对象
    UiObject getFromParent(UiSelector selector) 从父类获取子类,按照UiSeletor获取兄弟类(递归)
    boolean isCheckable() 检查对象的checkable属性是否为true
    boolean isChecked() 检查对象的checked属性是否为true
    boolean isClickable() 检查对象的clickable属性是否为true
    boolean isEnabled() 检查对象的enabled属性是否为true
    boolean isFocusable() 检查对象的focusable属性是否为true
    boolean isFocused() 检查对象的focused属性是否为true
    boolean isLongClickable() 检查对象的longclickable属性是否为true
    boolean isScrollable() 检查对象的scrollable属性是否为true
    boolean isSelected() 检查对象的selected属性是否为true
    boolean performMultiPointerGesture(PointerCoords[]... touches) 执行单手指触控手势,可定义任意手势,与形状
    boolean performTwoPointerGesture(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps) 执行任意两个手指触控手势,模拟两个手指手势
    boolean pinchIn(int percent, int steps) 手势操作,两点向内收缩
    boolean pinchOut(int percent, int steps) 手势操作,亮点向外张开
    boolean waitForExists(long timeout) 等待对象出现
    boolean waitUntilGone(long timeout) 等待对象消失
    boolean exists() 检查对象是否存在
    1 、UiCollection类说明
        1) UiCollection是UiObject的子类
        2) UiCollection代表元素条目集合
    2 、UiCollection功能说明
        1)先按照一定的条件枚举出容器类界面所有符合条件的子元素
        2)在从符合条件的元素再次通过一定的条件最终定位需要的组件
    3 、UiCollection使用场景
        1)一般使用容器类组件作为父类
        2)一般使用在需要找子类且子类由于某些因素不好定位
        3)获取某一类的数量,如获取联系人列表下当前视图下联系人的数量
    public UiObject getChildByDescription (UiSelector childPattern, String text)
    public UiObject getChildByText (UiSelector childPattern, String text)
    public UiObject getChildByInstance (UiSelector childPattern, int instance)
    在UiSelector选择器的查找条件中从子ui元素中搜索,递归寻找所有符合条件的子集。
    再次用描述/文本/实例条件从前面搜索子集定位到想要的元素
    参数:
    childPattern UiSelector从子元素中的选择条件
    Text、instance 从搜索出的元素中再次用描述/文本/实例条件搜索元素
    返回值:UiObject
    抛出异常:UiObjectNotFoundException
  • 相关阅读:
    android基础开发之一setContentView用法
    setContentView( )方法
    如何使用andriod的布局标签
    也谈layout_gravity和gravity的用法
    SlidingMenu第二篇 --- SlidingMenu常用属性介绍
    SlidingMenu第一篇 --- 导入SlidingMenu库
    JS----对象的合并与克隆
    angular2 ----字符串、对象、base64 之间的转换
    WebStorm过期解决方法
    JavaScript--鼠标滚动改变图片大小
  • 原文地址:https://www.cnblogs.com/ronaldHU/p/6871609.html
Copyright © 2011-2022 走看看