Uiautomator自动化测试编写和调试
参考:http://www.2cto.com/kf/201610/559031.html
在Eclipse中编写,新建java程序而不是Android程序
(其中截图都为windows下,同Linux)
1.建立java项目
(1)选择File-New-JavaProject
(注意:是java proect)
(2)输入Project Name
输入Project name:GldTest,选择JRE自己的版本,点击Next,下一步
(3)添加Android库
路径sdk\platforms\android-19下的android.jar和uiautomator.jar(尽量18以上);
选择Add External TARS—android.jar,uiautomator.jar两个jar包加入-OK;
添加android-list之后样式:
(4)添加JUnit库:
Libraries-AddLibrary-Junit-Junit4-Finash,添加AddLibrary,选择JUnit之后再选择JUnit4,点击Finish;
(5)添加android库和JUnit4之后样式
(6)另一种方式添加Android库和JUnit4
点击项目名字右击—BuildPath—Configure Build Path……
以上环境建立中之后,我们开始建包和类,开始我们的第一个项目;
2.添加包Package并命名
一般是先有项目,项目下有个src,src下建包,包里放我们写的类;
(1)点击src右击-New—Package
(2)输入包名
Name:testPackage-点击Finish;注意:包名一般第一个小写,之后英文第一个首字母大写;
3.包下建类Class
(1)添加类
右击testPackage-New-Class,新建一个类:
(2)输入类名:
Name:TestClass,然后点击Finish;类名:一般第一个字母大写,采用驼峰式命名;
4.类中写代码
刚开始接触,我们写一个简单的代码,实现手机桌面点击“时钟”进入即可;(由于大家刚接触,所以我们就写简单的,后续我们会加深)
(1)启动uiautomator.bat定位“时钟”元素
首先确定电脑已经通过USB连接上手机;然后我们要知道通过哪些方式能够找到“时钟”,然后才能点击“时钟”;
打开我们的android-skd安装目录,在tools下找到点击uiautomator.bat,点击启动,等待几秒,就会弹出我们的手机界面,我们用鼠标点击“时钟”,右侧就会有相应的属性和参数;
页面中我们看到text值显示着“时钟”所以我们采用text属性,去定位找“时钟”;在实际操作中我们还可以通过index、resource-id、class、package、content-desc去定位元素,或者多个一起使用去定位元素,后续我们再说,今天我们用text去定位,需注意,如果大家看到界面text后是一些???问号的话,不是我们的工具有问题,是手机系统版本有问题,如果能升级就升级,安卓4.4.2以下是不支持text属性的;
(2)写代码
代码写好之后,我们要开始去运行我们的代码;
5.运行代码步骤
(1)查找Sdk的id
计算机-运行-cmd进入到自己sdk\tools\目录下,输入android list(安卓建立工程时我选择是19,所以我要找19的id)
(2)创建build文件(sdk\tools\下)
sdk\tools\目录下,输入以下命令:
命令:
android create uitest-project –n -t -path
解释:
是将来生成jar包的名字;
path是我们工程的路径地址,我们工程路径在:F:\lianxi\workspace\GldProject;
sdk-id是androidlist查看到的;
举例:android create uitest-project -n AutoRunner(测试工程名) -t 1 -p F:\lianxi\workspace\GldProject
命令运行之后,在工程的根目录下生成build.xml文件,图见下:
(3)编译生成jar包(工程目录下)
cmd进入到工程目录下(工程目录就是我们的文件保存路径),然后运行ant build;
(若未装ant,输入命令:sudo apt install ant)
最后会显示build成功
Build成功之后,在工程bin目录下生成jar文件,我们5.(2)中命名为AutoRunner.jar的文件:
(4)将jar包push到手机
将电脑中的AutoRunner.jar包自动发送到手机,我们不需要发送手机,直接通过push命令就可以将包放入手机;
命令:adb push data/local/tmp (意思就是将电脑中AutoRunner.jar文件放到手机data/local/tmp目录下)
举例:adb push F:\lianxi\workspace\GldProject\bin\AutoRunner.jardata/local/tmp
(5)运行jar文件
命令:adb shell uiautomator runtest -c <包名.类名>
举例:adb shell uiautomator runtest AutoRunner.jar -c testPackage.TestClass
附:包名类名简图:
注意:包名.类名可不能写错.以上就完成了,uiautomator自动化测试;
以上是最麻烦的在dos环境运行的方式,接下来我们可以借助UiAutomatorHelper.java类去执行测试;