UI Automator + Eclipse + Ant 编译安装运行
来源:互联网 发布:mac 截屏快捷键 编辑:程序博客网 时间:2024/06/11 12:53
1 环境准备
- Android开发环境的准备,首先通过ui automator viewer的测试,可以获取到屏幕的元素
见:http://blog.csdn.net/ericyue83/article/details/48375005 - Eclispe 和 Ant安装并配置
- 准备测试设备,本人通过真实设备小米手机作为测试对象
2 创建Eclipse项目
- 打开Eclispe,创建一个Java Project(项目名:UIAutomatorTestCaseDemo)
- 增加android.jar,uiautomator.jar到项目的external jar中
( jar在本机的如下类似目录:%android_home%\platforms\android-22) - 新建一个class(类名:testcasedemo,extend UiAutomatorTestCase),包名为com.lewi.demo
3 生成对应的build.xml文件
找到项目的目录,通过如下命令生成ant需要的build.xml文件。
D:\android>android create uitest-project -n UIAutomatorTestCaseDemo -t 1 -p D:\EclipseWorkspace\UIAutomatorTestCaseDemo
Added file D:\EclipseWorkspace\UIAutomatorTestCaseDemo\build.xml
运行完成后,在Eclispe中刷新项目,会看到新产生的build.xml文件。
4 配置ant targets
右键build.xml,选择Run As…选择,可以配置此项目的Targets。如下图:
默认情况,Target只选择了help。根据需要,我选择了help, build, install,test。当运行到test target提示
Launching tests from Ant not supported yet
跳转到%android_home%/tools/ant/uibuild.xml查看到,是以为当前版本不支持ant test。
根据uibuild.xml里面的提示,更新了自己的需要测试内容,再次ant test,测试通过。
更新后的uibuild.xml中test部分如下:
<target name="test" description="Runs tests"> <!-- todo: fix this --> <!-- <fail message="Launching tests from Ant not supported yet" /> --> <exec executable="${adb}" failonerror="true"> <arg line="${adb.device.arg}" /> <arg value="shell" /> <arg value="uiautomator" /> <arg value="runtest" /> <arg value="${out.filename}" /> <arg value="-e" /> <arg value="class" /> <arg value="com.lewi.demo.testcasedemo" /> </exec> </target>
目前已经搞定ant一键编译,安装和测试。在Eclipse 中,可以通过快捷方式Alt + Shift + X , Q 执行ant。
5 修改测试用例Demo,让其成为一个完成的用例。
- 需求:通过滑屏解锁手机,然后点击Home键,检查主屏是否出现。
- testcasedemo代码如下:
package com.lewi.demo;import android.os.RemoteException;import com.android.uiautomator.testrunner.UiAutomatorTestCase;import com.android.uiautomator.core.UiObject;import com.android.uiautomator.core.UiObjectNotFoundException;import com.android.uiautomator.core.UiScrollable;import com.android.uiautomator.core.UiSelector;public class testcasedemo extends UiAutomatorTestCase { public void testDemo() throws UiObjectNotFoundException, InterruptedException, RemoteException { if(!getUiDevice().isScreenOn()){ getUiDevice().wakeUp(); getUiDevice().swipe(250, 850, 250, 100, 2); } getUiDevice().waitForWindowUpdate(null, 2000); getUiDevice().pressHome(); UiObject clockValidation = new UiObject(new UiSelector().packageName("com.miui.home")); assertTrue("could not find clock",clockValidation.exists()); }}
使用ant进行build, install,test后,输出如下:
......compile: [javac] Compiling 1 source file to D:\EclipseWorkspace\UIAutomatorTestCaseDemo\bin\classes-post-compile:-dex: [dex] input: D:\EclipseWorkspace\UIAutomatorTestCaseDemo\bin\classes [dex] Found Deleted Target File [dex] Converting compiled files and external libraries into D:\EclipseWorkspace\UIAutomatorTestCaseDemo\bin\classes.dex...-post-dex:-jar: [jar] Building jar: D:\EclipseWorkspace\UIAutomatorTestCaseDemo\bin\UIAutomatorTestCaseDemo.jar-post-jar:build:install: [exec] 666 KB/s (1364 bytes in 0.002s)test: [exec] open: Permission denied [exec] open: Permission denied [exec] INSTRUMENTATION_STATUS: numtests=1 [exec] INSTRUMENTATION_STATUS: stream= [exec] com.lewi.demo.testcasedemo: [exec] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner [exec] INSTRUMENTATION_STATUS: test=testDemo [exec] INSTRUMENTATION_STATUS: class=com.lewi.demo.testcasedemo [exec] INSTRUMENTATION_STATUS: current=1 [exec] INSTRUMENTATION_STATUS_CODE: 1 [exec] INSTRUMENTATION_STATUS: numtests=1 [exec] INSTRUMENTATION_STATUS: stream=. [exec] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner [exec] INSTRUMENTATION_STATUS: test=testDemo [exec] INSTRUMENTATION_STATUS: class=com.lewi.demo.testcasedemo [exec] INSTRUMENTATION_STATUS: current=1 [exec] INSTRUMENTATION_STATUS_CODE: 0 [exec] INSTRUMENTATION_STATUS: stream= [exec] Test results for WatcherResultPrinter=. [exec] Time: 3.603 [exec] OK (1 test) [exec] INSTRUMENTATION_STATUS_CODE: -1BUILD SUCCESSFULTotal time: 7 seconds
当我们使用Ecllipse调试通过后,我们也可以使用命令行去部署和运行:
上次Jar包到测试设备: adb push UIAutomatorTestCaseDemo.jar /data/local/tmp
运行测试用例: adb shell uiautomator runtest UIAutomatorTestCaseDemo.jar -c com.lewi.demo.testcasedemo
6 Reference
http://android.toolib.net/tools/testing/testing_ui.html#creating
7 Todo List:
- 如何处理中文信息
- 如何把Demo代码共享到github
- UI Automator + Eclipse + Ant 编译安装运行
- eclipse 安装ant ui
- UI Automator
- UI automator
- eclipse中构建ant项目和编译运行ant
- UI automator learning
- UI Automator Viewer
- android测试:UI automator
- UI automator的使用
- UI Automator Viewer的使用
- UI Automator Viewer的使用
- Android自动化测试 UI Automator
- ANT 安装+编译
- ant编译和安装
- Eclipse安装Ant插件
- 在Eclipse中运行Ant
- 使用Ant编译Eclipse源代码
- Android Eclipse Ant 编译打包
- 函数型指针
- 阿里云服务器【ubuntu】安装hadoop
- 数据库——图像,图册设计策略
- 前端性能优化篇(常见)
- win7下设置 WiFi AP
- UI Automator + Eclipse + Ant 编译安装运行
- WebService框架Jersey简单总结
- 苏宁2016研发工程师编程题
- Protocol Buffers Compiler 的所谓“Mac版”
- Android GridView控件学习
- swift入门day1
- ViewPager千变万化的图片切换效果
- 【网络通信:Volley】请求的发送与响应之String
- 优化sql感悟