您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > UIAutomator零基础入门资料
ByHoneyBeeUIAutomator零基础入门目录UIAutomator的概念环境配置及准备UI组件分析123UIAutomator的API4UIAutomator的概念3.权限最大的,可以对整个系统做UI测试不仅仅是局限于单个APP1.Google官方提供的android4.1以上版本自带的一个UI测试框架。用来做UI测试,它可以获取到界面上所有的view元素和控件,也可以用来做功能性测试,去点击界面上的控件元素,也就是相当于我们的手工测试。2.测试人员不需要知道APP的源代码的情况下就可以用UIAutomator对程序进行UI测试。环境配置及准备3.安装Eclipse1.android4.1以上的AndroidSDK1.在命令行输入androidlist就会把所有的sdk都打印到控制台,选择API大于16以上的那个androidtarget。记住这个target前面的ID号。2.安装ANT配置ant环境。编译文件时要用到分析UI组件1.使用uiautomatorviewer这个工具对UI组件进行分析。1.在命令行输入uiautomatorviewer就会启动这个工具2.点击上面的DeviceScreenshot就会获取到当前界面的UI组件。我们主要分析的就是右边这块新建UIAutomator工程1.注意它是个java工程,所以新建工程时跟新建java工程是一样的。2.这个工程我们要导入两个androidsdk的jar包。选择androidtarget大于16以上的在sdk/platform/android-17/下面。导入android.jar和uiautomator.jar3.导入一个junit3的库。4.工程建好了,就在scr下面新建class文件了,superclass里我们选择UiAutomatorTestCase.工程建好了接下来就是写代码了。UIAutomator的API•1,UiObject•2,UiScrollable•3,UiWatcher•4,UiDevice•5,UiCollection•6,UiSelector•7,UiObjectNotFoundExceptionUiDeviceUiDevice:在测试中可以通过UiDevice对象去对设备的控制,如点亮屏幕、锁屏、旋转方向、截图等,点击home键、back键、menu键等。可以通过getUiDevice()来获取UiDevice对象。UiDevice=getUiDevice()如:getUiDevice.pressHome();点击home键UiDevice点击、拖拽、层级获取信息、清除文本锁屏和唤醒旋转等待、监听器按键事件截图、滑动通知栏、快速设置•//点亮屏幕并点击Home键•publicvoidtestClickHome()throwsRemoteException{•getUiDevice().wakeUp();•getUiDevice().pressHome();•}UiObject•UiObject:整个UI里面的某个元素或控件。可以通过UiObject对象来对控件模拟用户的操作。UiObject的构造函数里是传入一个UiSelector对象。所以我们要通过UiSelector来查找我们需要的元素或控件•如:UiObjectappsButton=newUiObject(newUiSelector().description(apps));•拿到UiObject对象后可以做如下的操作:如图•通过UiObject获取对象来模拟用户的操作,如:•点击与长按对象•拖曳与滑动对象•输入文本与清除文本•获取对象的属性与属性判断•手势操作•判断对象是否存在•publicvoidtestClick()throwsUiObjectNotFoundException,RemoteException{•UiObjectclock=newUiObject(newUiSelector().resourceId(com.android.deskclock:id/analog_appwidget));•clock.click();•getUiDevice().pressBack();•}UiSelector•UiSelector:可以通过UiSelector对象去定位UI元素。如果发现多个满足条件的控件则会返回第一个控件,在使用UiSelector的时候可以组合使用多个属性来定位具体的控件,还可以使用childSelector()函数来嵌套UiSelector对象。UiSelector描述description(String)等文本text(String)……resourceId(string)特有属性clicked(boolean)父控件、子控件类名、包名、索引UiScrollable•UiScrollable:可滚动的控件,如果操作的控件需要滚动就可以使用UiScrollable•如:UiScrollableappsList=newUiScrollable(newUiSelector().className(android.view.View));•appsList.setAsHorizontalList();快速滚动向前或向后滚动获取列表子元素UiScrollable滑动坐标是的偏移量设置水平或垂直滚动方向获取或设置滚动次数滚动到某个对象UiCollection•UiCollection:代表所有控件的集合,可以用来获取所用控件的个数,获取子元素对象•1.获取子类元素:•1.publicUiObjectgetChildByDescription(UiSelectorchildPattern,Stringtext)•从UiSelector里选择符合指定条件的text的子元素•2.publicUiObjectgetChildByInstance(UiSelectorchildPattern,intinstance)•从UiSelector里选择符合条件的instance的子元素•3.publicUiObjectgetChildByText(UiSelectorchildPattern,Stringtext)从UiSelector里选择符合指定条件的text的子元素2.获取子元素个数:•publicintgetChildCount(UiSelectorchildPattern)•获取所用子元素的个数运行测试工程保存好编写的工程,进入我们写好的工程目录下执行:1.androidcreateuitest-project-nXXX-tandroid-sdk-id-p工程的路径-n后面接的是之后生成的jar包名,-t后面是接API大于16的sdk的id-p是这个case工程的目录。2.执行完上面的命令会生成一个build.xml文件。然后执行antbuild3.执行上面的命令会生成个test.jar包,这个jar包会生成在工程的bin目录下面,然后执行adbpushxxx.jar/data/local/tmp把jar包文件push进手机4.最后执行adbshelluiautomatorruntestxxx.jar-c包名.类名。
本文标题:UIAutomator零基础入门资料
链接地址:https://www.777doc.com/doc-4121531 .html