51Testing软件测试论坛

标题: 自动化测试框架UIAutomator使用详解 [打印本页]

作者: 小小糖    时间: 2018-4-23 13:29
标题: 自动化测试框架UIAutomator使用详解
一、UIAutomator概述

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

2)用来做UI测试,如点击每个控件元素看看输出的结果是否符合预期,Android SDK在4.1中提供了两个工具来
支持UI自动化测试:uiautomatorviewer,一个图形界面工具,它可以获取到应用中所有的view元素和控件;uia
utomator,一个测试的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 Files\Java\jdk1.7.0_17) 、Path(%JAVA_HOME%\bin;%JAVA_H
OME%\jre\bin)、CLASSPATH(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar);

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

2)Android环境配置

①配置环境变量ANDROID_HOME(C:\Program Files (x86)\Android\android-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包
[attach]114214[/attach]

三、UIAutomator API详解&实际案例

[attach]114215[/attach]

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

[attach]114216[/attach]
[attach]114217[/attach]

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

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

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

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

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

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

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

(9)发送键;

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

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

[attach]114218[/attach]


作者: 梦想家    时间: 2018-5-9 10:01





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2