【附理解】批处理文件:实现将写好的Android Uiautomator工程打包成jar包放到手机中执行

时间:2021-03-19 09:39:54

问题:UIAutomator有一个麻烦:无法通过Eclipse直接编译。

解决:UIAutomator需要经历一系列的命令进行编译。

参:《深入理解Android自动化测试(移动开发)》和http://developer.android.com/tools/testing/testing_ui.html

具体步骤如下:

1) 通过如下命令创建编译文件built.xml

<android -sdk>/tools/android create uitest -project -n <name> -t 数字 -p <path>

其中,<name>为UIAutomator测试工程名(如CallRateVoLTE),而参数<path>为对应的待编译的工程根目录(如D:\android-sdk\eclipse\workspace\CallRateVoLTE)

实例:create.bat文件:

d:
cd D:\android-sdk\tools
android create uitest-project -n CallRateVoLTE -t 4 -p D:\android-sdk\eclipse\workspace\CallRateVoLTE

创建完成后,刷新Eclipse中的测试项目CallRateVoLTE,会出现新的build.xml文档。

 

2) 进入工程的根目录,

cd <path_to_your_TestProject>

实例:进入工程目录后,编译项目ant build,build.bat文件:

cd D:\android-sdk\eclipse\workspace\CallRateVoLTE
ant build

编译成功后,进入项目文件夹的bin文件夹中,将看到新生成的CallRateVoLTE.jar

3) 将生成的jar包推送到手机端

adb push <path_to_output_jar> /data/local/tmp

实例:push.bat文件:

adb push D:\android-sdk\eclipse\workspace\CallRateVoLTE\bin\CallRateVoLTE.jar /data/local/tmp/

 

4) 在手机端运行自动化脚本(即JAR包)中的测试用例,命令如下

adb shell UIAutomator runtest <path_to_output_jar> -c <entrance_class>

实例:run.bat文件:

adb shell uiautomator runtest CallRateVoLTE.jar -c com.uiauto.CallBefore
pause

注意:运行时必须指定到具体测试类名,而不是项目名。

5) 最后用OnlyOne.bat将上面4个命令文件串起调用:

@echo off
cd D:\android-sdk\eclipse\workspace\CallRateVoLTE
call D:\android-sdk\eclipse\workspace\CallRateVoLTE\create.bat
call D:\android-sdk\eclipse\workspace\CallRateVoLTE\build.bat
call D:\android-sdk\eclipse\workspace\CallRateVoLTE\push.bat
call D:\android-sdk\eclipse\workspace\CallRateVoLTE\run.bat

注意上述5个bat文件同在待测试的工程根目录下。