很久没更新博客了,今天至后期的一段时间将带给大家的是UiAutomator android的自动测试框架,一系列的介绍,希望大家喜欢。采用uiautomator编写的自动化测试工具则可以实现基于UiSelector选择直接操作uiObject来编写基于属性操作具备移植性的测试。它有个弱点就是在于都是基于像素位置操作,不具备移植性,
注:
android官方给出的版本条件如下,若低于这些版本请先下载新版本
Android SDK Tools, Revision 21 or higherAndroid SDK Platform, API 16 or higher
在开始测试前请先配置好你的环境变量(环境变量的搭建请大家百度),java JDK请使用1.7
本次的说明主要是在eclipse开发工具中讲解
我们首先打开eclipse创建以个java项目,记住是java项目,创建自己的包名,创建libs文件夹,用于存放我们的jar包,用到的jar包
他在文件的
上图我用的是android 19包下面的jar包,将jar包拷贝到libs文件夹中,并且将jar包导入到项目中,
下面我们将开始进行编程了:
在包中创建Class(类) 我创建的类Test 他必须继承 UiAutomatorTestCase
接下来就是创建方法,注意的是方法名必须是test开头,不要问我为什么,这是规矩,
如下面的代码
public void testDemo() throws UiObjectNotFoundException { UiDevice.getInstance().pressHome();//点击home键 UiObject browser=new UiObject(new UiSelector().text("互联网"));//找到浏览器 browser.clickAndWaitForNewWindow();//点击浏览器 UiObject edit=new UiObject(new UiSelector().className("android.widget.EditText"));//得到浏览器中的网页输入框 edit.click();//点击输入框这样就能使光标在输入框上 UiDevice.getInstance().pressDelete();//删除浏览框中的网址 edit.setText("www.baidu.com");//设置我们想输入的网址 UiDevice.getInstance().pressEnter();//回车进行浏览,在部分手机不支持回车浏览,可以使用上面的方式得到浏览按钮在点击进行浏览 sleep(3000); }
代码中主要是实现找到手机自带的浏览器并且点击进入实现自动输入www.baidu.com,并进行浏览
在这里大家就会问怎么才能等到手机上面的浏览器已经手机上的输入框,下面将通过图解来给大家呈现:
在eclipse中有的图标如果没有请在
进行添加
当手机通过adb连接上电脑后再eclipse中就会出现如同:
选中我们的手机,我用的手机是samsumg 点击上图红框的图,就会出现如下图
鼠标在左侧移动式就有个红色的框框跟随你移动右面就会显示框框选中的app的属性,如,
通过上面的方式我们打开浏览器:
再继续找浏览器中输入网址的文本框如下图:
这样就能通过class来找到文本框,
完成上面的代码我们
我盟在dos命令窗体中输入android create uitest -project -n uidemo -t 1 -p E:\xingdun\Test
为了方便大家我们可以在我们创建的java工程文件夹下面 我的工程文件在
按住shifi 右键鼠标就会出现在“在此处打开命令窗口”
在命令窗口 android create uitest -project -n uidemo -t 1 -p E:\xingdun\Test
出现“added file xxxxxxxx”表示成功
我们回到eclipse中刷新我们的项目就会出现 一个build.xml文件,
打开这个文件 将最上面的 default =“ help”修改成build ,保存,
run as 这个build ,不是项目
控制台出现如图表示成功
这时我们将我们的demo.jar 这里大家会问为什么是demo.jar 这里的demo.jar来源于build中的
接下来就是将我们的demo.jar通过adb push到我们的手机中
成功将在命令窗口显示多少K,表示成功
接下来就是开始运行我们的程序,运行程序我们可以继续通过adb来运行,
在命令窗体输入adb shell uiautomator runtest demo.jar -c com.test.Test点击回车这样就能看见我们的劳动成果了
说明 runtest demo.jar 中的demo.jar是我们复制到手机中的jar包, -c 后面的com.test.Test 是我们的项目包名+类名,由于我们的项目只有一个方法就直接
跟的包名+类名,其实最全面的写法是在包名后面还有跟#和方法名,有多少方法就直接#多少方法。