【Android测试】AndroidStudio通过UIAutomator进行测试

原创 2016年08月19日 13:32:45

在eclipse中使用UIAutomator时步骤较为繁琐,而在Studio环境下只需要添加引用,编写测试类,运行测试类就可以实现。步骤较简单。

1.配置环境

在包依赖中添加对UIAutomator的引用,这里需要注意,引用包版本不能高于最低编译版本,也就是 minSdkVersion 的值,期初我的 minSdkVersion 为15,与添加的v18产生冲突。

    // Set this dependency to build and run UI Automator tests
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.0'

2.测试类的实现

在添加引用后直接在测试包下创建测试类即可。以对官方应用计算器为例进行测试。测试类需要继承自UiAutomatorTestCase。在setUp()中进行测试初始化,在以test开头的测试方法中进行操作。
通过UiDevice可以进行手机按键的一些操作,比如休眠与唤醒,回退键等一些系统按键。
在setUp中先通过UiDevice对象跳转到页面主页,通过点击按钮进入所有apps的界面,对界面中各种按钮等对象的获取通过UiSelector进行定位,在UiAutomator中,所有的控件都是同样的UiObject。通过对按钮的description可以获取到该按钮。对页面的控件描述都可以通过sdk/tools文件夹下的uiautomatorviewer进行页面的显示获取。
操作到Calculator界面后通过文本内容获取控件模拟点击,最后将显示内容与预期内容进行对比。
这里写图片描述
实现测试代码如下:

public class CalculatorAndroidTest extends UiAutomatorTestCase {

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        UiDevice device = getUiDevice();
        device.pressHome();
        UiObject allAppsButton = new UiObject(new UiSelector().description("Apps"));
        allAppsButton.clickAndWaitForNewWindow();
        UiObject cal = new UiObject(new UiSelector().text("Calculator"));
        cal.click();
    }

    public void testSum() throws UiObjectNotFoundException {
        new UiObject(new UiSelector().text("9")).click();
        new UiObject(new UiSelector().text("+")).click();
        new UiObject(new UiSelector().text("1")).click();
        new UiObject(new UiSelector().text("=")).click();

        UiObject res = new UiObject(new UiSelector().className("android.widget.EditText"));
        assertEquals("","10",res.getText());
    }

    public void testSub() throws UiObjectNotFoundException {
        new UiObject(new UiSelector().text("9")).click();
        new UiObject(new UiSelector().text("−")).click();
        new UiObject(new UiSelector().text("1")).click();
        new UiObject(new UiSelector().text("=")).click();

        UiObject res = new UiObject(new UiSelector().className("android.widget.EditText"));
        assertEquals("","8",res.getText());
    }

    public void testMul() throws UiObjectNotFoundException {
        new UiObject(new UiSelector().text("3")).click();
        new UiObject(new UiSelector().text("×")).click();
        new UiObject(new UiSelector().text("4")).click();
        new UiObject(new UiSelector().text("=")).click();

        UiObject res = new UiObject(new UiSelector().className("android.widget.EditText"));
        assertEquals("","12",res.getText());
    }

    public void testDiv() throws UiObjectNotFoundException {
        new UiObject(new UiSelector().text("9")).click();
        new UiObject(new UiSelector().text("÷")).click();
        new UiObject(new UiSelector().text("3")).click();
        new UiObject(new UiSelector().text("=")).click();

        UiObject res = new UiObject(new UiSelector().className("android.widget.EditText"));
        assertEquals("","3",res.getText());
    }
}

最后自动测试的过程:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/okm6666/article/details/52249967

在Android Sudio中使用Uiautomator

如何在Android Studio中使用uiautomator 【步骤1】新建一个Android工程 不需要创建Activity 【步骤2】配置gradle(app) ...
  • cxq234843654
  • cxq234843654
  • 2016-04-21 09:50:58
  • 11666

Uiautomator在Android Studio下的环境搭建

谷歌对Uiautomator最近的更新,提供了新的API接口,同时也对工具进行了更新,官方文档建议使用Android Studio来搭建测试框架。 准备环境 先到SDK Manager里下载Ex...
  • chengdupanda
  • chengdupanda
  • 2016-05-17 15:30:33
  • 3180

Android Studio下运行UiAutomator

步骤总结如下: 一、新建一个项目,和Android项目的区别是不要创建Activity(Add No Activity)   二、新建项目完成后,修改gradle文件 ...
  • jdc317264476
  • jdc317264476
  • 2017-05-04 11:25:29
  • 535

android开发笔记之Android Studio运行UiAutomator

uiautomator的实现是在androidTest目录下:Demo第一步:在build.gradle文件中添加uiautomator:// Set this dependency to build...
  • hfreeman2008
  • hfreeman2008
  • 2018-01-02 14:22:31
  • 135

UI分析神器-uiautomatorviewer+Android Studio

当我们拿到了别人的app源码时,如何快速熟悉代码?如何看着UI来熟悉代码?今天Coder哥就传授给大家一个终极神器—uiautomatorviewer!话不多说,show me the code!St...
  • limonzet
  • limonzet
  • 2016-11-19 12:29:12
  • 3524

Android Studio学习基础介绍

一、运行和调试相关的操作 与studio目录相关介绍http://blog.csdn.net/binjianliu/article/details/77547610...
  • luckrr
  • luckrr
  • 2018-03-21 01:05:48
  • 66

<em>UiAutomator</em> <em>Android</em> 的自动测试框架(基础)

<em>Android Studio</em>下运行<em>UiAutomator</em> <em>UiAutomator</em> Android 的自动测试框架(基础) 立即下载 上传者: 黑客帝国时代 时间: 2016-05-04 综合评分: 0 积分/C币:5 An...
  • 2018年04月18日 00:00

使用Appium进行Android自动化测试 - 通过UI Automator方式查找元素

一. Appium中使用UI Automator查找元素的方法1. 直接使用driver.find_element_by_android_uiautomator(UIAutomator locator...
  • eldencheng
  • eldencheng
  • 2018-03-08 23:15:21
  • 67

【学以致用】android功能实现8---Android Studio 的UiAutomator 2.0的测试覆盖率验证

之前研究了如果使用Uiautomator 2.0来自动化模拟人的手动测试,来检测程序的基本功能是否完整。然而,根据经验来检测功能,是人为设定哪些功能是我们需要关注的,认为设定的真的测试完整了吗?这个测...
  • dax120
  • dax120
  • 2018-02-02 14:20:33
  • 93

android studio2.2配置uiautomator2

1、  SDK Manager需要安装Android Support Repository。           2、  build.gradle配置(Module中的gradle) defaultC...
  • tangxl2008008
  • tangxl2008008
  • 2016-10-22 17:23:44
  • 1402
收藏助手
不良信息举报
您举报文章:【Android测试】AndroidStudio通过UIAutomator进行测试
举报原因:
原因补充:

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