Android UIAutomator自动化测试

描述: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

时间: 2024-10-23 05:54:03

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

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

1.首先来介绍下UIAutomator工具 UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器. 2.UIAutomator测试环境搭建 2.1 在pypi.Python.org网站下载uiautomator压缩包,解压后python setup.py install安装:或者直接pip install uiautomator 2.2 对于uiautomator工具而言,adb是必不可少的,adb提供的adb shell可

Android UiAutomator - CTS Frame

使用UiAutomator进行UI自动化测试后,生成的测试结果并不是很美观.为了生成一份好看的测试结果(报告),本文将使用CTS框架,当然也可以自己编写一份测试报告框架(如:生成html,excel报告). 一.环境搭建(这里就不再重复,可以去看CTS Test) JDK,SDK,android-cts,run.bat 配置好环境变量下载完资源后.将android-cts复制到SDK下,并且在该目录下创建一个run.bat文件.代码如下: @echo off set CTS_ROOT=%~dp0

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

简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具.今天介绍的是一个java库,提供执行自动化测试的各种API. Android团队在4.1版本(API 16)中推出了一款全新的UI自动化测试工具UiAutomator,用来帮助开发人员更有效率的完成App的Debug工作,同时对于测试人员也是一大福音,为什么这么说呢? QA:“那个谁谁谁,我刚刚操作的时候,我发现了一个bug,你写的App打开

UiAutomator自动化测试框架介绍

环境搭建 1         必要条件 1.1       JDK 1.2       SDK(API高于15) 1.3       Eclipse 2         简要步骤 2.1       安装JDK并添加bin目录到环境变量 2.2       添加SDK中的tools目录和platform-tools到环境变量 2.3       安装Eclipse并安装ADT插件 建立工程 1         用eclipse建立Java project 2         添加Junit库 3

Android UiAutomator 快速调试

背景:在Eclipse中不能直接运行Uiautomator工程,所以每次编写一份用例都要进行手动输入命令创建build文件.ant编译文件.push文件与运行测试这四步.调试起来不仅繁琐还浪费时间.网上找到一份快速调试的代码UiAutomatorHelper,可将这几步进行简化很方便. 步骤:将UiAutomatorHelper.java放到工程目录下(与测试脚本同步目录),在测试脚本中写个main方法.然后Run as ->java application即可 1 package com.ch

Android Monkey自动化测试

前言 如果你做Android开发,还没有使用过Monkey进行测试,那么今天看到这篇文章,希望能解决你Android测试中的一些问题.起码能帮你省点测试的时间并且发现更多的问题. Monkey简介 Monkey是一个可运行在模拟器和实际设备中的Android命令行自动化测试工具,它可以模拟伪随机的用户事件流,例如点击.触摸.手势等.你可以使用Monkey对正在开发的程序进行压力测试. Monkey的特征: 测试的对象为程序包名,通过-p参数指定. Monkey测试使用的事件流.数据流是随机的,不

老李分享:android app自动化测试工具合集

老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200.我们从2016年8月开始不断升级测试开发工程师就业培训的班的课程,不断新增和优化课程内容,为了和当下企业的实际情况,提高学员的实战水平,在2016年稳定课程主题框架,做到每半年升级一版. 安卓应用自动化测试工具之一 - PerfectoMob

python+Android+uiautomator的环境

Python+Android+uiautomator的环境搭建 Python 下载适合系统的版本并安装,安装时勾选把路径加入path 验证:windows下打开cmd输入python 出现以下界面说明安装成功 Android 下载安装路径:http://tools.android-studio.org/index.php/sdk 先下载安装jdk Jdk安装文档:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html 验证:

Android测试(六):Android UI自动化测试

Android测试(六):Android UI自动化测试 发布时间 2017年12月20日 虫师 原文:https://developer.android.com/training/testing/ui-testing/index.html 用户界面(UI)测试可以确保你的应用程序满足其功能要求,并达到用户最可能成功采用的高质量标准. UI测试的一种方法是简单地让人类测试人员在目标应用程序上执行一组用户操作,并验证其行为是否正确. 但是,这种手动方法可能耗时.乏味.且容易出错.更有效的方法是编写