天问

自动化测试框架UIAutomator使用详解

 

一、UIAutomator概述

1)UIAutomator是Android 4.1以上版本自带的一个测试框架;

2)用来做UI测试,如点击每个控件元素看看输出的结果是否符合预期,Android SDK在4.1中提供了两个工具来支持UI自动化测试:uiautomatorviewer,一个图形界面工具,它可以获取到应用中所有的view元素和控件;uiautomator,一个测试的java库,包含了创建UI测试的各种API和执行自动化测试的引擎;注:要使用该工具,需要满足Android SDK Tools Revision在21以上,Android SDK Platform API在16以上;

3)可以对整个系统做UI测试,不仅仅局限于某个APP,权限最大;

4)测试人员不需要知道APP的源代码就可以用UIAutomator对程序进行UI测试。

二、环境搭建

1)JAVA环境配置

①安装JDK(1.6以上);

②配置环境变量JAVA_HOME(C:Program FilesJavajdk1.7.0_17) 、Path(%JAVA_HOME%bin;%JAVA_HOME%jrebin)、CLASSPATH(.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar);

③通过javac和java -version验证开发环境是否配置成功。

2)Android环境配置

①配置环境变量ANDROID_HOME(C:Program Files (x86)Androidandroid-sdk)、

Path(%ANDROID_HOME%tools;%ANDROID_HOME%platform-tools);

②通过adb命令和android list来查看环境变量是否配置成功。

3)引入UIAutomator测试包

使用Eclipse:

①右键点击测试项目选择“Properties > Java Build Path”;

②点击“Add Library > JUnit”,添加JUnit框架;

③点击“Add External JARS”并导航到Android SDK目录,选择platform目录下面的android.jar和UIAutomator.jar两个文件。

使用Android Studio:配置gradle,修改后同步即可导入UIAutomator.jar包

、UIAutomator API详解&实际案例

 

以检测各个应用市场是否有更新我狗输入法为例,介绍下UIAutomator的使用,具体流程及相关代码如下:

 

(1)根据控件ID获取对象;也可以根据文本获取对象

UiObject btn = mDevice.findObject(newUiSelector().text("下一步").className(Button.class));还可以通过控件的父类(上一级控件)获取该控件,如(8);

(2)点击对象,也可以点击对象病等待新窗口出现(参数为等待超时时长),如(13);

(3)在对象中输入文本,也可以获取对象文本,如(6);

 

(4)获取滚动元素对象;

(5)将滚动方向设置为纵向,也可以设置为横向,如(11);

(7)快速向前滑动(默认步长为5),快速向后滑动为scrollViewObj.flingBackward();

(9)发送<BACK>键;

(10)向前滚动(默认步长55),向后滚动如(12)。

 

作为一款负责人的自动化框架,必须支持监听。如果没有监听,我们就不知道事件何时被触发;如果没有监听,我们就不知道什么时候响应最合适;如果没有监听,我们就陷入到漫长的等待中无法自拔,永远不知道对方是否已经收到。针对该实例,有些手机在输入法安装成功之后会自动弹出“删除安装包”的框,而我们并不知道输入法安装多久才会弹出这个提示,所以需要采用监听器的方式来控制。监听器示例代码如下:

博客地址:http://blog.yoqi.me/?p=2803
扫我捐助哦
喜欢 0

这篇文章还没有评论

发表评论