描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试。 UIAutomator不需要测试人员了解代码实现细节,属于功能和黑盒测试。测试代码结构简单,编写容易,学习曲线低。基于JAVA,一次编译可以运行于所有Android设备。

使用限制:uiautomator是一个包含一套UI测试API,和支持运行测试程序的JAR包。该JAR包位于sdk/platforms/android-*/uiautomator.jar. 使用时需要注意自己的SDK版本需要大于16, SDK Tools版本需要大于21.

Uiautomator使用步骤:

1、 在Eclipse中,新建java项目“CalculatorAutoTest”;

2、 右键java项目->构建路径->配置构建路径->库->添加库->选择JUnit,下一步->选择Junit4->完成;

3、 添加必要的Jar包:右键java项目->构建路径->配置构建路径->添加外部JAR->选择sdk/platforms/android-*/目录下的uiautomator.jar和android.jar,路径中的*请使用自己以下载的最新版本;

4、 在java项目中新建类CalTest继承UiAutomatorTestCase;

代码:目前用于项目的自动化测试代码。

//进行自动化测试
publicvoid testDemo() throws UiObjectNotFoundException{
// UiScrollable appview = new UiScrollable (new UiSelector().className("android.view.View").instance(0));
// UiObject openapp = appview.getChildByText(new UiSelector().className(android.widget.TextView.class.getName()) , "Biohop");
// openapp.clickAndWaitForNewWindow();
while(true){
UiObject TestLinearlayout=new UiObject(new
UiSelector().resourceId("com.android.test:id/mainTesting"));
TestLinearlayout.click();
sleep(1000);
UiObject TestingToNamelayout=new UiObject(new UiSelector().resourceId("com.android.test:id/testingToName_go_linearLayout"));
TestingToNamelayout.click();
sleep(1000);
UiObject QRlayout=new UiObject(new UiSelector().resourceId("com.android. test:id/DataMatrixSure_linearlayout"));
QRlayout.click();
sleep(28000);
UiObject TestResultlayout=new UiObject(new UiSelector().resourceId("com.android. test:id/testingTimeCountSure_Linearlayout"));
TestResultlayout.click();
sleep(1000);
UiObject TestResultDialog=new UiObject(new UiSelector().resourceId("com.android.test:id/systemSetDialog_close"));
TestResultDialog.click();
sleep(1000);
}
}

5、 进入cmd命令行管理器:进入sdk/tools所在的目录,键入

-> d:

-> cd Android\android-sdk-windows\tools

6、 查看当前sdk中,sdk的所有版本信息,在tools目录下,键入:

-> android list target

7、 目的是为了知道相应版本的id号,同时不仅仅UIAutomator需要sdk4.1或以上版本的支持,同时如果你需要通过UI控件的id进行UI识别,那么所选择的sdk,需要API Level 18以上的版本,所以这里我选择了id=7的sdk版本。

8、 创建打包测试代码的Build脚本。通过如下命令来生成Build脚本:

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

其中:<name>是包含测试代码的项目名称,<path>是包含测试代码的项目文件路径。-t后面的1是Android sdk版本id。在cmd中键入:

-> android create uitest-project -n CalculatorAutoTest -t 7 -p D:\workspace\CalculatorAutoTest

9、 在命令行中,进入CalculatorAutoTest项目所在文件夹,并使用ant工具对build.xml进行编译,另ant编译工具需要自行安装和配置环境变量

-> ant build

10、下面还需要将这个jar文件拷贝到手机的 /data/local/tmp/ 目录中,拷贝操作可以通过一下命令实现:

-> adbpush D:/workspace/CalculatorAutoTest/bin/CalculatorAutoTest.jar  /data/local/tmp/

11、 最后运行jar文件:下面“CalTest”为类CalTest,有包名的要将包名也写上

-> adb shell uiautomator runtest CalculatorAutoTest.jar -c CalTest

\

12、uiautomator代码解析网站:http://techgogogo.com/2015/01/uiautomator%E5%AE%9A%E4%BD%8Dandroid%E6%8E%A7%E4%BB%B6%E7%9A%84%E6%96%B9%E6%B3%95%E5%AE%9E%E8%B7%B5%E5%92%8C%E5%BB%BA%E8%AE%AEappium%E5%A7%8A%E5%A6%B9%E7%AF%87/

配置参考网站:http://www.it165.net/pro/html/201409/22071.html

13、使用命令:adb shell uiautomator runtest CalculatorAutoTest.jar -c CalTest对程序进行测试,必须要将USB连接上电脑测试程序才能运行。断开USB连接,测试也能够运行的方法:使用命令:adb shell uiautomator runtest CalculatorAutoTest.jar--nohup -c CalTest

Android UIAutomator自动化测试的更多相关文章

  1. Android UiAutomator 自动化测试编译运行---新手2

    1.首先打开eclipse创建java项目

  2. 【转】Python + Android + Uiautomator自动化测试

    1.首先来介绍下UIAutomator工具 UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器. 2.UIAutomator测 ...

  3. Android UiAutomator 自动化测试一些代码实例---新手3

    1.打开浏览器,打开百度实例 public void testBrowser() throws RemoteException, UiObjectNotFoundException{ //灭屏幕-亮屏 ...

  4. Android UiAutomator 自动化测试环境搭建---新手1

    1.首先需要准备的工具有 1.java jdk 2. android开发工具 adt 3.ant 安装包(如果下载adt里面有) 2.首先安装java环境,jdk这个百度就可以了. 3.android ...

  5. Appium python自动化测试系列之Android UIAutomator终极定位(七)

    android uiautomator text定位 可能有人不知道为什么说android uiautomator是终极定位,而且android uiautomator和appium有什么关系呢?如果 ...

  6. UiAutomator自动化测试框架介绍

    UiAutomator自动化测试框架介绍 环境搭建 1         必要条件 1.1       JDK 1.2       SDK(API高于15) 1.3       Eclipse 2    ...

  7. Android UiAutomator - CTS Frame

    使用UiAutomator进行UI自动化测试后,生成的测试结果并不是很美观.为了生成一份好看的测试结果(报告),本文将使用CTS框架,当然也可以自己编写一份测试报告框架(如:生成html,excel报 ...

  8. Android UiAutomator

    UiAutomator是一个做UI测试的自动化框架.<Android自动化测试框架>中已有详细介绍,这里就不再累赘了. 一.首先了解自动化测试流程 自动化需求分析 测试用例设计 自动化框架 ...

  9. Appium+python自动化(十二)- Android UIAutomator终极定位凶“胸”器(七)(超详解)

    简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测 ...

随机推荐

  1. Volatile关键字回顾之线程可见性

    java中,volatile关键字有两大作用: 1.保证线程的可见性 2.防止指令重排序 这篇文章主要通过典型案例,体现可见性这一特性. 概念: java中,堆内存是线程共享的.而每个线程,都应该有自 ...

  2. 金融和IT的区别

    在进入金融圈之前, 我写了十五年的代码, 在San Francisco Bay Area(也就是中国人所说的硅谷)工作过两三年. 去年因为Fintech和香港.NET俱乐部的缘故, 我接触了私人银行和 ...

  3. 洛谷P1003 铺地毯 模拟

    这一题就是一个很普通的模拟,每次输入的时候存储四个角的值 把四个角的横纵坐标存储在一排.然后在倒序遍历一遍,查找的时候就看所要查找的坐标在不在这个范围内,如果找到了就标记一下再输出,如果没有找到就输出 ...

  4. C++实现秒表

    完整代码下载 思路概括:如果有键按下,判断按下的是什么键并处理.没有键按下,计时.传统的Sleep无法满足秒表精确到百毫秒的需求,这里使用更精确的clock,clock的作用是统计从程序开始运行到现在 ...

  5. Visdom 介绍 | 二

    用于创建,组织和共享实时丰富数据可视化的灵活工具.支持Python. 概述 概念 设置 用法 API 注意事项 贡献 API 要快速了解visdom的功能,请查看example目录,或阅读以下详细信息 ...

  6. sql server 数据库安装手册

    1. 双击setup.exe运行安装程序,进入[SQL Server 安装中心] 2. 选择左侧菜单栏[安装],运行第一项[全新安装或向现有安装添加功能] 3. 进入[SQL Server 2008 ...

  7. iOS OCR

    身份证识别,又称 OCR 技术.OCR 技术是光学字符识别的缩写,是通过扫描等光学输入方式将各种票据.报刊.书籍.文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算 ...

  8. 用pymysql和Flask搭建后端,响应前端POST和GET请求

    前言 这次作业不仅需要我建立一个数据库(详情请点击这里),还需要我基于这个数据库写后端接口(注册和登录)供前端访问,接收前端的POST和GET请求,并将登录.注册是否成功传给前端. 本文介绍如何用Fl ...

  9. [noip模拟]数字对<RMQ&二分>

    数字对 [题目描述] 小H是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= ...

  10. [Asp.Net Core] 为什么选择 Blazor Server Side (一) 快速实现图片验证码

    关于Blazor 由于在国内, Blazor一点都不普及, 建议读者翻看我之前写的随笔, 了解Blazor Server Side的特点. 在一段时间内, 我会写一些解说分析型的 "为什么选 ...