您的位置:首页 > 产品设计 > UI/UE

uiautomator 1使用简介

2017-05-18 08:37 323 查看
1、生成build.xmlandroid create uitest-project -n jar_name -t id -p projectPah2、修改build.xml 改成默认执行build.xml<project name="AutoRunner" default="help">修改为<project name="AutoRunner" default="build">3、push jar包到手机adb push jarName data/local/tmp4、执行测试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) 模拟短按键盘代码keycodeboolean pressKeyCode(int keyCode) 模拟短按键盘代码keycodeboolean pressMenu() 模拟短按menu键boolean pressRecentApps() 模拟短按最近使用程序boolean pressSearch() 模拟短按搜索键KEYCODE 键盘映射码1)KeyEvent 按键事件2)META Key辅助功能键: ALT、SHIFT、CAPS_LOCK列 激活状态 metaStatebase META_key未被激活 0caps SHIFT或CAPS_LOCK被激活时 1fn ALT被激活 2caps_fn ALT,SHIFT或CAPS_LOCK同时被激活时 3UiSelect 代表搜索一种搜索条件,可以在当前界面查询和获取特定元素,如果获取到多个元素则返回布局层次结构上第一个匹配的元素四种匹配关系:完全匹配(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.LinearLayout3)正则方式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) 资源IDUiSelector 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属性是否为trueboolean isChecked() 检查对象的checked属性是否为trueboolean isClickable() 检查对象的clickable属性是否为trueboolean isEnabled() 检查对象的enabled属性是否为trueboolean isFocusable() 检查对象的focusable属性是否为trueboolean isFocused() 检查对象的focused属性是否为trueboolean isLongClickable() 检查对象的longclickable属性是否为trueboolean isScrollable() 检查对象的scrollable属性是否为trueboolean isSelected() 检查对象的selected属性是否为trueboolean 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: