11.1.3 开发测试代码
下面用ADT里自带的Eclipse开发一个简单的软件测试代码。它包括以下几个步骤。
(1)新建一个Java工程包。
(2)增加build path。
(3)新建软件测试类,继承UiAutomatorTestCase。
(4)编译与运行。
1.新建一个Java工程包
(1)建立一个Java Project,如图11-8所示。
(2)为Project起一个名字,并且选择路径,如图11-9所示。
(3)确定Project信息,如图11-10所示。
图11-8 建立一个Java Project
图11-9 为Project起一个名字,并且选择路径
图11-10 确定Project信息
(4)为Project建立一个包,如图11-11所示。
图11-11 为Project建立一个包
右击Project名,建立Package,Package名称一般为XX.XX.XX,并且具有一定的含义。比如:com.jerry,表示Jerry公司开发的Java Package。
(5)建立临时文件目录,命名为libs,如图11-12所示。
图11-12 建立临时文件目录,命名为libs
右击Project名,选择new->folder,命名为libs。
(6)寻找android.jar文件[J2]
通过文件夹,寻找android.jar,复制这个目录下的两个文件android.jar和uiautomator.jar,如图11-13所示。
图11-13 android.jar和uiautomator.jar文件
(7)粘贴到第(5)步建立的libs目录下,如图11-14所示。
图11-14 粘贴到第(5)步建立的libs目录下
(8)build path这两个文件,如图11-15所示。
图11-15 build path
选择这两个文件,点击鼠标右键,在弹出的菜单中选择“buildpath”->“Addto Build Path”,这两个文件就添加到“Referenced Libraries”中了。
(9)在这个包下建立类(class)。
选中第(4)步创建的包,单击鼠标右键,在弹出的窗口中选择New->Class,如图11-16所示。
图11-16 新建Class
为Class起一个名字,单击【Browse…】按钮,如图11-17所示。
图11-17 为Class起一个名字
使其继承UiAutomatorTestCase类,如图11-18所示。
完成后生成基本的代码如图11-19所示。
图11-18 使其继承UiAutomatorTestCase类
图11-19 完成后生成基本的代码
2.编译和运行
建立好测试代码,就可以运行了,编译和运行总体架构如图11-20所示。
图11-20 编译和运行总体架构
(1)输入如图11-21所示代码,这个代码的作用:按下手机上的Home键。
图11-21 输入代码
(2)获得Project位置,选择“文件->属性”命令,获得Project位置,如图11-22所示。
图11-22 获得Project位置
(3)打开命令行,通过cd命令进入类的路径,如图11-23所示。
(4)创建build.xml文件。
在命令行中输入“>android create uitest-Project -nmyTest -t 1–p C:\Myproject\Demo1”,获得如图11-24所示的3个文件。
图11-23 通过cd命令进入类的路径
图11-24 获得的3个文件
在这个命令中:
-t:id可以通过>android list获得,一般为1。
-n:类名。
-p:类所在的路径。
将新产生的build.xml中的default=“help”改为default=“build”,如图11-25所示。
图11-25 修改build.xml文件
(5)通过ant命令进行编译。
输入:>ant -buildfile build.xml,编译测试jar包,如图11-26所示。
图11-26 编译build.xml文件
(6)在Eclipse中启动模拟器。
如图11-27所示,在Eclipse中按标记的按键,启动安卓模拟器。
图11-27 在Eclipse中启动安卓模拟器
在弹出的菜单中点【Tools】,如图11-28所示。
图11-28 由Android SDK Manager进入Android虚拟设备管理器
然后点击【New】按键可以新建模拟器;或者在选中已有的模拟器中单击【Edit】按钮修改已有的模拟器设置,如图11-29所示。
图11-29 新建Android设备模拟器
新建或者修改完毕,选择要启动的模拟器,单击【Start…】按钮,然后单击【Launch】启动Android模拟器,如图11-30所示。
图11-30 启动Android设备模拟器
(7)等待模拟器启动完毕,把文件push到Android虚拟机上[J3]
输入:>adb push C:\Myproject\Demo\bin\Demo.jar/data/local/tmp,如图11-31所示(关于adb的命令,见参考文献【10】)。
注:文件必须push到Android设备的/data/local/tmp目录中。
图11-31 把文件push到Android虚拟机上
在虚拟机上运行测试程序。
运行:>adbshell uiautomator runtest Demo.jar -c com.jerry.myTest #mytest,如图11-32所示。其中:
图11-32 在虚拟器上运行
Demo.jar:jar包名。
com.jerry.myTest:类名。
#mytest:注释。
3.运行命令与快速调试
显而易见,如果要修改这个测试脚本,就要重新生成文件、修改build文件、编译、push到虚拟设备上,然后运行。这是非常麻烦的步骤,因此下面介绍一种简便的方法,用于快速运行UiAutomator测试脚本。
在介绍运行命令与快速调试之前,先把代码修改一下:
package com.jerry; import android.os.RemoteException; import com.android.uiautomator.testrunner.UiAutomatorTestCase; import com.android.uiautomator.core.UiDevice; public class myTest extends UiAutomatorTestCase { public void testDemo() { UiDevice.getInstance().pressHome(); //按Home键 } public void testMenu(){ UiDevice.getInstance().pressMenu(); //按菜单键 } public void testRecent() throws RemoteException{ UiDevice.getInstance().pressRecentApps(); //执行最近运行的程序 } }
其中:
UiDevice.getInstance().pressHome(); 为按下Home键。
UiDevice.getInstance().pressMenu(); 为点按菜单键。
UiDevice.getInstance().pressRecentApps(); 为执行最近运行的程序。
打开浏览器,输入https://github.com,进入页面后,查询uiautomatorhelper,如图11-33所示。
图11-33 查询uiautomatorhelper
找到后,点击链接:fan2597/UiAutomatorHelper,如图11-34所示。
图11-34 选择fan2597/ UiAutomatorHelper
建议在下面的页面中使用Copy,而不使用Download,如图11-35所示。
图11-35 Clone in Desktop
按照图11-36粘贴上一步Copy的地址到Eclipse中。
图11-36 粘贴上一步Copy的地址
然后单击【Next】按钮。安装完毕后,如图11-37所示,导入ImportGit到已有的Project中。
图11-37 导入Git到已有的Project中
导入完毕后,单击【Finish】按键,如图11-38所示。
接下来,如图11-39所示,单击【Java】图标按钮,确保Git已成功导入。
查看UiAutomatorHelper.java,它把产生build.xml、修改build.xml、编译、传输、执行操作通过程序自动化起来了,如图11-40所示。
图11-38 导入Git完毕
图11-39 确保Git已成功导入
图11-40 UiAutomatorHelper.java
下一步,把UiAutomatorHelper.java复制到自己建立的包下,如图11-41所示。
图11-41 把UiAutomatorHelper.java复制到自己建立的包下
接下来,如图11-42所示,加入一个main函数。
图11-42 加入一个main函数
main函数中。[J4]
jarName:测试脚本的jar包名。
testClass:测试脚本的Package名称。
testName:测试脚本的函数名。
androidID:通过运行android list获得,一般为1。
最后点Eclipse上面的【运行】键,就可以在Eclipse里面运行了。如果需要修改测试脚本,修改完毕,保存后,直接点【运行】键就可以再次在Eclipse中运行了。
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。