UIAutomator

简介

UiAutomator 是 Google 在 Android4.1 推出的一套黑盒 UI 自动化测试框架,用于做 UI 自动化的框架,主要模拟人来操作手机,如点击、长按、滑动、按键、文本输入等操作。UiAutomator 通过组件的属性如 ID、文本、描述、类名、实例等来查询定位到相应的组件,再注入各种模式操作事件来达到模拟人操作手机的目的。


创建UIAutomator2.0 的工程


  1、创建一个 android 工程

  我们打开 AS,创建一个空应用:


  2、添加依赖和测试代码

 

 

  先在 build.grade 里面添加依赖。

 

 

 

<span style="font-size:18px;">apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.hujc.androidtest"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'

    androidTestCompile 'com.android.support.test:runner:0.4'
    // Set this dependency to use JUnit 4 rules
    androidTestCompile 'com.android.support.test:rules:0.4'
    // Set this dependency to build and run Espresso tests
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    // Set this dependency to build and run UI Automator tests
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
}
</span>

 

 

 

3、在 androidTest 下面添加测试代码

 

package com.hujc.androidtest;

import android.support.test.uiautomator.By;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject2;
import android.support.test.uiautomator.Until;
import android.test.InstrumentationTestCase;

/**
 * @author hujc on 2016/6/15
 */
public class MainUiautomatorTest extends InstrumentationTestCase {

    private UiDevice device;

    @Override
    public void setUp() throws Exception {
        super.setUp();

        device = UiDevice.getInstance(getInstrumentation());


        // Perform a short press on the HOME button
        device.pressHome();

        // Bring up the default launcher by searching for
        // a UI component that matches the content-description for the launcher button
        UiObject2 allAppsButton = device.findObject(By.desc("Apps"));

        // Perform a click on the button to bring up the launcher
        allAppsButton.click();

        device.wait(Until.hasObject(By.text("Calculator")), 3000);
        UiObject2 androidTest = device.findObject(By.text("Calculator"));
        androidTest.click();
    }

    public void testCalculator() throws Exception {

        // Wait till the Calculator's buttons are on the screen
        device.wait(Until.hasObject(By.text("7")), 3000);

        // Select the button for 9
        UiObject2 buttonSeven = device.findObject(By.text("7"));
        buttonSeven.click();

        // Select the button for *
        UiObject2 buttonMultiply = device.findObject(By.desc("multiply"));
        buttonMultiply.click();

        // Press 7 as we are calculating 7*6
        UiObject2 buttonSix = device.findObject(By.text("6"));
        buttonSix.click();

        // Select the button for =
        UiObject2 buttonEquals = device.findObject(By.desc("equals"));
        buttonEquals.click();

        device.wait(Until.hasObject(By.clazz("android.widget.EditText")), 3000);
        UiObject2 resultText = device.findObject(By.clazz("android.widget.EditText"));
        String result = resultText.getText();
        assertTrue(result.equals("42"));

    }
}

 

 

 

 

 

 

  运行

  运行很简单,右击测试文件,点击运行即可。

 

 

 

 

 

 

  成功运行

 

 

总结

UIAutomator可以通过模拟人来操作手机来实现自动化黑盒测试,并且是可以跨应用的测试,使用起来还是比较方便的,网上文档资料也很多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值