自动化测试之uiautomator

原创 2016年05月30日 20:25:41

1、必备条件:

1JDK (java version 版本查询1.6以上)
    2SDKAPI高于15
    3Eclipse(安装ADT插件)
    4ANT(用于编译生成jar

 

2、简要步骤:

1、安装JDK并添加环境变量。
        JDK的安装方法不再赘述,目前一般研发主机上都已安装,需要说明的是一定要通过JAVA_HOME的方式添加环境变量,即先建立JAVA_HOME变量,然后在path中添加%JAVA_HOME%\bin;(验证方法,cmd中键入java,看是否能识别此命令)


    2、添加SDK环境变量。
        一定要先建立ANDROID_HOME,然后把%ANDROID_HOME%\tools添加到path中;


    3、安装Eclipse,并安装ADT插件。


    4、安装ANT工具,并添加环境变量(我的anteclipse下面有,路径在\eclipse\plugins\下面,可以到eclipse下面去搜一下ant,看有没有,没有的话具体安装方法可能要上网查查了)

        同样一定要先建立%ANT_HOME%变量,然后在path中添加%ANT_HOME%\bin(验证方法也是在cmd中键入ant看命令能否被识别即可)

 

3、建立工程

    Eclipse新建Java Project,注意,不是Android Project

4、添加JUnit

next->Libraries->Add Library

    

 

5、添加Android

      Add External JARs:

    找到路径Android-sdk\platforms\android-17\下面的android.jaruiautomator.jar添加进来:  

    所有库添加完应该是这个样子:

    

 

 

6、在src中添加包,然后添加class文件

    文件内容为:

[java] view plaincopy 

1. package com;   

2. import com.android.uiautomator.core.UiObject;   

3. import com.android.uiautomator.core.UiObjectNotFoundException;   

4. import com.android.uiautomator.core.UiScrollable;   

5. import com.android.uiautomator.core.UiSelector;   

6. import com.android.uiautomator.testrunner.UiAutomatorTestCase;   

7.    

8. public class Runner extends UiAutomatorTestCase {   

9.    

10.     public void testDemo() throws UiObjectNotFoundException {   

11.         getUiDevice().pressHome();   

12.         // 进入设置菜单   

13.         UiObject settingApp = new UiObject(new UiSelector().text("Settings"));   

14.         settingApp.click();   

15.         //休眠3   

16.         try {   

17.             Thread.sleep(3000);   

18.         } catch (InterruptedException e1) {   

19.             // TODO Auto-generated catch block   

20.             e1.printStackTrace();   

21.         }   

22.         // 进入语言和输入法设置   

23.         UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));   

24.    

25.         UiObject languageAndInputItem = settingItems.getChildByText(   

26.                 new UiSelector().text("Language & input"), "Language & input"true);   

27.         languageAndInputItem.clickAndWaitForNewWindow();   

28.            

29.     }   

30. }  

    上面工程路径在e:\workspace\AutoRunner,类全名为com.Runner,至于具体的作用我们现在不去关心。

7、找到SDK ID

    CMD运行命令:

    android list

    查看对应android版本的SDKID值,当前是60
    

8、创建build文件

   运行命令: android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
    比如:
    android create uitest-project -n AutoRunner -t 60 -p e:\workspace\AutoRunner
    上面的name就是将来生成的jar包的名字,可以自己定义,android-sdk-ID就是上面看到的60pathEclipse新建的工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。如果没生成,检查上面的步骤。

9、编译生成jar

   打开build.xml文件,修改其中的helpbuild

 

 

 

 

然后运行ant –f (build.xml文件路径),将使用ant编译生成jar,成功将会提示:
    
    然后会在bin目录下生成jar文件。

10push并运行jar

    adb push <jar文件路径> data/local/tmp
    adb shell uiautomator runtest <jar文件名> -c <工程中的类名,包含包名>
    比如:
    adb push e:\workspace\AutoRunner\bin\AutoRunner.jar data/local/tmp
    adb shell uiautomator runtest AutoRunner.jar -c com.Runner

    然后就能看到手机会按照Runner中的步骤自动执行。具体效果就是,进入设置菜单,然后再进入语言和输入法菜单

 

uiautomator(android-sdk)界面自动化测试+eclipse的使用

在Android 4.1发布的时候包含了一种新的测试工具– uiautomator ,uiautomator是用来做UI测试的。也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期。比如...
  • qq_30953277
  • qq_30953277
  • 2016年08月11日 18:36
  • 1061

Android自动化测试之UIAutomator(一)

一、自动化测试的必要性 Android程序开发迭代周期短,测试case重复度高,大部分case属于功能验证,常规的测试方法是测试人员按照预先写好的Case手顺进行测试,人工比对操作结果和预期结果。这...
  • qq_21071977
  • qq_21071977
  • 2016年08月30日 09:36
  • 2614

Espresso 自动化测试(八)- SeekBar的测试

用过UiAutomator的同学其实都应该清楚,SeekBar是一个相当大的痛点,因为我们能够做到最多的就是获取到SeekBar的坐标,再来点击相应的一个坐标。那么问题来了。我根本就不知道我点击的结果...
  • qq744746842
  • qq744746842
  • 2016年02月16日 09:14
  • 1444

Android自动化测试UIautomator-UiWatcher

  • 2014年04月04日 23:08
  • 1.18MB
  • 下载

Android自动化测试UIautomator-UiObject

  • 2014年04月04日 23:04
  • 905KB
  • 下载

Uiautomator建立自动化测试项目和运行

  • 2016年10月21日 13:57
  • 1.28MB
  • 下载

Android自动化测试之UIAutomator

一、自动化测试的必要性 Android程序开发迭代周期短,测试case重复度高,大部分case属于功能验证,常规的测试方法是测试人员按照预先写好的Case手顺进行测试,人工比对操作结果和预期结果。这...
  • chenjiang2936
  • chenjiang2936
  • 2016年05月31日 13:46
  • 961

Android自动化测试之UIAutomator

Android自动化测试之UIAutomator 写在最前面,因为我们的项目使用aar模块化打包,之前写的appium程序没法用了,原因是页面的id无法识别了。现在正在看怎么处理,or其他类似的...
  • kittyboy0001
  • kittyboy0001
  • 2015年02月08日 17:00
  • 1298

Android自动化测试(UiAutomator)简要介绍

一、一个BUG引发的问题     如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。     那么,自动化测试可...
  • wanglin_lin
  • wanglin_lin
  • 2015年10月18日 21:42
  • 782

Android自动化测试(UiAutomator)简要介绍

一、一个BUG引发的问题     如果研发过程中有一个BUG:“不断的切换手机语言出现花屏现象”。这个问题我们如何验证呢?我想,最好的方式应该是自动化测试。     那么,自动化测试可...
  • qweewqpkn
  • qweewqpkn
  • 2015年08月20日 00:21
  • 255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动化测试之uiautomator
举报原因:
原因补充:

(最多只允许输入30个字)