《UIAutomator零基础入门------by楚耳爱》由会员分享,可在线阅读,更多相关《UIAutomator零基础入门------by楚耳爱(12页珍藏版)》请在金锄头文库上搜索。
1、UIAutomator零基础入门-by 楚耳爱UIAutomator的概念:1.Google官方提供的android4.1以上版本自带的一个UI测试框架。用来做UI测试,它可以获取到界面上所有的view元素和控件,也可以用来做功能性测试,去点击界面上的控件元素,也就是相当于我们的手工测试。2.测试人员不需要知道APP的源代码的情况下就可以用UIAutomator对程序进行UI测试。3.权限最大的,可以对整个系统做UI测试不仅仅是局限于单个APP环境配置及准备:1.android4.1以上的Android SDK1.在命令行输入android list 就会把所有的sdk都打印到控制台,选择AP
2、I大于16以上的那个android target 。记住这个target前面的ID号。2.安装ANT 配置ant环境。3.安装Eclipse 分析UI组件:1.使用uiautomatorviewer这个工具对UI组件进行分析。1.在命令行输入 uiautomatorviewer就会启动这个工具 2.点击上面的Device Screenshot就会获取到当前界面的UI组件。我们主要分析的就是右边这块新建UIAutomator工程:1.注意它是个java工程,所以新建工程时跟新建java工程是一样的。2.这个工程我们要导入两个android sdk 的jar包。选择android target大于
3、16以上的在sdk/platform/android-17/下面。导入android.jar和uiautomator.jar3.导入一个junit 3的库。4.工程建好了,就在scr下面新建class文件了,superclass里我们选择UiAutomatorTestCase.工程建好了接下来就是写代码了。UIAutomator的API:1.UiDevice :在测试中可以通过UiDevice对象去对设备的控制,如点亮屏幕、锁屏、旋转方向、截图等,点击home键、back键、menu键等。可以通过getUiDevice()来获取UiDevice对象。UiDevice=getUiDevice()
4、 如:getUiDevice.pressHome();点击home键UiDevice点击、拖拽、层级获取信息、清除文本锁屏和唤醒旋转等待、监听器按键事件截图、滑动通知栏、快速设置2.UiObject :整个UI里面的某个元素或控件。可以通过UiObject对象来对控件模拟用户的操作。UiObject的构造函数里是传入一个UiSelector对象。所以我们要通过UiSelector来查找我们需要的元素或控件如:UiObject appsButton=new UiObject(new UiSelector().description(apps);拿到UiObject对象后可以做如下的操作:如图3.
5、UiSelector :可以通过UiSelector对象去定位UI元素。如果发现多个满足 条件的控件则会返回第一个控件,在使用UiSelector的时候可以组合使用多 个属性来定位具体的控件,还可以使用childSelector()函数来嵌套 UiSelector 对象。 UiSelector描述description(String)等文本text(String)resourceId(string)特有属性clicked(boolean)父控件、子控件类名、包名、索引4.UiScrollable:可滚动的控件,如果操作的控件需要滚动就可以使用UiScrollable 如:UiScrollabl
6、e appsList=new UiScrollable(new UiSelector().className(android.view.View);appsList.setAsHorizontalList() ;快速滚动向前或向后滚动获取列表子元素UiScrollable滑动坐标是的偏移量设置水平或垂直滚动方向获取或设置滚动次数滚动到某个对象UiCollection: 代表所有控件的集合,可以用来获取所用控件的个数,获取子元素对象1.获取子类元素: 1.public UiObject getChildByDescription(UiSelector childPattern, String t
7、ext) 从UiSelector里选择符合指定条件的text的子元素 2.public UiObject getChildByInstance(UiSelector childPattern, int instance) 从UiSelector里选择符合条件的instance的子元素 3.public UiObject getChildByText(UiSelector childPattern, String text) 从UiSelector里选择符合指定条件的text的子元素2.获取子元素个数: public int getChildCount(UiSelector childPatte
8、rn) 获取所用子元素的个数运行测试工程:保存好编写的工程,进入我们写好的工程目录下执行:1.android create uitest-project -n XXX -t -p -n后面接的是之后生成的jar包名,-t后面是接API大于16的sdk的id -p是这个case工程的目录。2.执行完上面的命令会生成一个build.xml文件。然后执行ant build3.执行上面的命令会生成个test.jar 包,这个jar包会生成在工程的bin目录下面,然后执行 adb push xxx.jar /data/local/tmp 把jar包文件push进手机4.最后执行 adb shell uiautomator runtest xxx.jar -c 包名.类名。