UiAutomator学习笔记

来源:互联网 发布:淘宝网店海报设计技巧 编辑:程序博客网 时间:2024/06/05 17:10

uiautomator

UiAutomator官方文档

简介

UiAutomator是Google推出的基于UI自动化测试框架,主要模拟在手机上进行点击、长按、滑动、按键、文本输入等操作

Android工具版本信息要求

Android SDK Tools, Revision 21 or higher
Android SDK Platform, API 16 or higher

如何使用

(1)在Eclipse中创建Java工程
(2)添加依赖库

android.jar、uiautomator.jar

(3)创建测试类

该类继承UiAutomatorTestCase,编写用例时,方法名必须以test开头(使用uiautomatorviewer工具分析应用的UI界面

(4)找到SDK-ID

CMD进入\Android-sdk\tools\目录下,执行命令:android list,查看对应Android版本的SDK-ID值

(5)创建build文件

在\Android-sdk\tools\目录下运行
android create uitest-project -n -t -p
name:生成的jar包名字
android-sdk-ID:
path:工程路径

(6)编译生成jar

方式一:
进入工程目录下,执行ant build
方式二:
Eclipse环境下将build.xml文件中的default属性值改为build,在右键执行build.xml文件,jar包生成在工程bin目录下

(7)push文件

adb push xxx.jar /data/local/tmp

(8)运行测试

adb shell uiautomator runtest -c [options]
指定运行的jar包位于/data/local/tmp目录下
-c 测试一个类下的所有用例package_name.class_name
–nohup作为控制,是否断开数据线依然可以运行
测试某个方法package_name.class_name#method_name,可指定多个-c

UiAutomator API

UiDevice此类主要包含了获取设备状态信息(代表设备状态),常见方法如下

click(int x,int y)点击屏幕上像素坐标为(x,y)的点
pressBack()
pressDelete()
presEnter()
pressHome()
pressMenu()
pressSearch()
wakeup()灭屏时唤醒屏幕
swipe(startX,startY,endX,endY,steps)滑动,steps表示步数,数目越少,滑动幅度越大
setOrientationLeft()手机旋转
setOrientationRight()
setOrientationNatural() 手机旋转状态回归正常

UiSelector 代表搜索UI控件的条件,返回结果为UiObject对象

checked()
className()
description()
index()
packageName()
text()
textContains()

UiObject 代表一个UI控件,通过UiSelector来查找UiObject

click()点击控件
clickAndWaitForNewWindow()点击某个控件,并等待窗口刷新
longClick()长按
clearTextField()清除文本,主要针对编辑框
getPackageName()得到控件的包名
getText()

UiCollection 代表控件合集,通过UiSelector来查找
UiScrollable 代表可滚动的控件

UiScrollable appViews = new UiScrollable(new UiSelector().scrollable(true));appViews.setAsHorizontalList(); // 水平方向执行滚动UiObject sApp = appViews.getChildByText(new          UiSelector().className(android.widget.TextView.class.getName()), "支付宝钱包");sApp.clickAndWaitForNewWindow();// 打开支付宝钱包
0 0