• uiautomator代码例子--java


    在androidtest下创建文件Ui2Test.java

    package com.example.myapplication;
    
    import android.app.Instrumentation;
    import android.os.RemoteException;
    import android.view.KeyEvent;
    import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner;
    import androidx.test.platform.app.InstrumentationRegistry;
    import androidx.test.runner.AndroidJUnit4;
    import androidx.test.uiautomator.By;
    import androidx.test.uiautomator.UiDevice;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    
    import java.io.IOException;
    
    @RunWith(AndroidJUnit4ClassRunner.class)
    public class Ui2Test {
        public Instrumentation mInstrumentation;
        public UiDevice mUidevice;
    
        @Before
        public void setUp() {
            mInstrumentation = InstrumentationRegistry.getInstrumentation();
            mUidevice = UiDevice.getInstance(mInstrumentation);
        }
        @Test
        public void DemoTest() throws IOException, InterruptedException {
            //资源id的形式
            mUidevice.pressKeyCode(KeyEvent.KEYCODE_HOME);
            mUidevice.executeShellCommand("am start -n com.miui.calculator/.cal.CalculatorActivity");
            Thread.sleep(1000);
            mUidevice.findObject(By.res("com.miui.calculator:id/btn_5_s")).click();
            //文本的方式
            mUidevice.findObject(By.text("7")).click();
            //通过描述
            mUidevice.findObject(By.desc("减")).click();
            mUidevice.executeShellCommand("am force-stop com.miui.calculator"); //关闭应用,只传入packagename就好了。
    
    
            //可以通过链式同时选定多个条件
    //        mUidevice.findObject(By.res("").checked(false)).click();
    //        //焦点类
    //        mUidevice.findObject(By.res("").focused(true)).setText("1234");
    
        }
    //    @Test
    //    public void calculatorTest() throws InterruptedException {
    //        //滑动解锁,10个步长为50ms。
    //        mUidevice.swipe(519,1505,519,306,10);
    //        mUidevice.pressKeyCode(KeyEvent.KEYCODE_HOME);
    //        Thread.sleep(2000); //等待2s
    //    }
    }
    
    
    

    build.gradle的配置

    apply plugin: 'com.android.application'
    
    apply plugin: 'kotlin-android'
    
    apply plugin: 'kotlin-android-extensions'
    
    android {
        compileSdkVersion 29
        buildToolsVersion "29.0.2"
        defaultConfig {
            applicationId "com.example.myapplication"
            minSdkVersion 18
            targetSdkVersion 29
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation 'androidx.appcompat:appcompat:1.1.0'
        implementation 'androidx.core:core-ktx:1.1.0'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.2.0'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
        //UiAutomator Testing 添加测试依赖
        androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
    }
    
    

    目前uiautomator生成的是apk文件 所以直接可以运行apk就好了

    /Users/chenxiangan/AndroidStudioProjects/MyApplication/app/build/outputs/apk/debug/app-debug.apk
    adb shell am instrument -w -r   -e debug false -e class 'com.example.myapplication.Ui2Test#DemoTest' com.example.myapplication.test/androidx.test.runner.AndroidJUnitRunner
    
  • 相关阅读:
    wsl手动启动特定的子系统
    winserver安装wsl
    wsl子系统下载地址-补充centos7地址
    wsl (1)-含wsl子系统各启动命令
    win10系统版本说明
    zenith 以及海康 rtsp流
    shinobi (4)
    ffmpeg
    CF993A Two Squares 几何 第二道 暴力或判断条件(*)
    CF994B Knights of a Polygonal Table 第一道 贪心 set/multiset的用法
  • 原文地址:https://www.cnblogs.com/c-x-a/p/11599534.html
Copyright © 2020-2023  润新知