怎样搭建UiAutomator 1.0 环境

1. 准备工作

有一些准备工作要做,这边我用的是:
Eclipse,Ant,Android
安装的话会需要一些步骤,而且,在我们使用Eclipse之前,需要使用到JDK。
a. 如何安装Eclipse的相关文档。
b. 如何安装JDK的相关文档。
c. 如何安装Ant的相关文档。
d. 如何安装Android SDK的相关文档。
安装这些软件,我们是很需要有耐心的,特别是当需要添加或者修改环境变量时。然而也不是太复杂,我们只需要根据提示一步一步来就行了。
如果上面的链接失效的话,我们可以自己去网上搜索一下。

2. 创建一个JUnit test case

准备工作完成后,我们可以开始创建一个项目了,点击“File-new Java project”,为项目起一个你喜欢的名字,比如说“ExoSuperSpeed”。
下一步点击“next-Libraries-add external JARs”,
我们要选择“android.jar”和“uiautomator.jar”。
选择合适的版本,记住版本号。再点击“Add library”,选择“JUnit4”,点击“Finish”,创建完项目。
之后创建一个包,在包的下面创建一个“JUnit Test case”,起好名字。因为一些版本的原因,我会把Java代码中的“import org.junit.Test”和“@Test”删除掉。

3. 写代码

现在可以开始写代码了,但是有两点要注意
第一点 你的主类必须继承自“UiAutomatorTestCase”。
第二点 你的主要测试部分起名字必须以“test”开头。
在“Android\sdk\tools”中你可以找到“uiautomator.bat”,可以帮助定位界面元素。

4. 创建build.xml文件

在Android目录下的文件夹里面找到tools,路径类似于“C:\USERS\XXX\Android\sdk\tools”,打开一个cmd窗口,输入命令“cd C:\USERS\XXX\Android\sdk\tools”。成功切换目录之后,输入命令“android list”可以的到一个列表。之后的一个命令是“android create uitest-project -n XXX -t XXX -p XXX”。

-n 后面,可以给之后将要得到的.jar文件命名;
-t 后面,选择合适的id来匹配“android.jar”和“uiautomator.jar”的版本;
-p 后面,输入当前项目所在的路径。
比如说,该命令可能会类似于
android create uitest-project -n ExoPlay01 -t 1 -p C:\Users\XXX\workspace\ExoSuperSpeed”。输入命令之后等待几秒,可以看到“Add file build.xml”即为成功。

5. 生成.jar文件

通过ant我们将把build.xml文件转换成.jar文件。刷新项目,在JUnit4目录下可以看到build.xml。右键点击该文件,选择“Run as-Ant build”,取消“help XXX”的勾选,选择“build XXX”,运行。
等待几秒,可以看到“BUILD SUCCESSFUL”,以及
“[jar] Building jar : C:\User\XXX\workspace\ExoSuperSpeed\bin\ExoPlay01.jar”

6. 移到待测设备

我们可以使用命令“adb push”来把.jar文件移动到待测设备中。该命令类似于
adb push C:\User\XXX\workspace\ExoSuperSpeed\bin\ExoPlay01.jar /data/”。
等待查看是否文件移动成功。

7. 测试

做了这么多工作,终于到测试步骤了。在控制台输入命令类似于
uiautomator runtest /data/ExoPlay01.jar”。
等待查看测试结果。

8. 注意事项

在这些步骤中,有一些是要留意的。
a. 确保安装的安卓软件和安卓设备互相支持,即是,没有版本纠纷;
b. 确保不要忘记添加“android.jar”,“uiautomator.jar”和“JUnit4”;
c. 在我们写代码之前,确保创建的是“JUnit test case”;
d. 主测试中,取名要以“test”开头,这样的话才会被识别为是一个测试;
e. 当我们使用adb push但是得到提示“permission denied”,可能是因为权限引起的。我们可以尝试把文件移动到另外一个目录或者做“adb root”之后重新移动文件。

顺便提一下,我会把我简单的小代码放在后面。我在尝试着通过android studio做uiautomator 2.0,会需要点时间。

也是刚开始尝试做这些的,如果说你们能从中得到点什么或者愿意帮我改进点什么,我会很感激的。

 package com.mv.superspeed;

import java.io.IOException;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class SuperSpeed extends UiAutomatorTestCase{

public void test() throws InterruptedException, IOException {
    String ShellCommand_RunExo = "am start -W "
            + "com.google.android.exoplayer.demo/.SampleChooserActivity";
    Runtime.getRuntime().exec(ShellCommand_RunExo).waitFor();
    System.out.println("start the app");
    UiScrollable ExoPlayerDemo = new UiScrollable(new UiSelector()
            .scrollable(true));
    ExoPlayerDemo.setAsVerticalList();
    UiObject SuperSpeedPlayReady = new UiObject(new UiSelector()
            .text("Super speed (PlayReady)"));
    try {
        ExoPlayerDemo.scrollIntoView(SuperSpeedPlayReady);
        System.out.println("scroll until the sight of the exact button");
    } catch (UiObjectNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if(SuperSpeedPlayReady.exists()){
        try {
            SuperSpeedPlayReady.click();
        } catch (UiObjectNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }else{
        System.out.println("Cannot locate SuperSpeedPlayReady");
    }
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,398评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,724评论 6 342
  • 我又一次回到南城,带着长途奔波后尚未散去的疲惫,和一丝对这座故乡小城的怀念。 我已经有5年没有回过南城了。 提着重...
    安可安阅读 1,978评论 10 9
  • 前一阵子大家讨论的轰轰烈烈的《我的前半生》草率的结束了。大家都认为女人应该有自己的工作和独自生活的能力。是的,我不...
    彩虹人生阅读 508评论 0 0