美文网首页AndroidAndroid开发Android知识
怎样搭建UiAutomator 1.0 环境

怎样搭建UiAutomator 1.0 环境

作者: JaedenKil | 来源:发表于2016-08-23 17:01 被阅读377次

    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");
        }
      }
    }

    相关文章

      网友评论

      • allenZP:android.jar”,“uiautomator.jar 这两个jar包在那里获取的?
        JaedenKil:你可以参考下这个:
        http://www.jianshu.com/p/1228c943e54a
        JaedenKil:建议你不用这个了,一般我们现在都是用uiautomator 2.0, 使用Android Studio写脚本。
        JaedenKil:抱歉,回复的不及时。
        应该是这一部分的吧:
        起一个你喜欢的名字,比如说“ExoSuperSpeed”。
        下一步点击“next-Libraries-add external JARs”,
        我们要选择“android.jar”和“uiautomator.jar”。
        选择合适的版本,记住版本号。再点击“Add library”,选择“JUnit4”,点击“Finish”,创建完项目。

      本文标题: 怎样搭建UiAutomator 1.0 环境

      本文链接:https://www.haomeiwen.com/subject/njcnsttx.html