uiautomator代码例子--java

mac2022-06-30  22

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

转载于:https://www.cnblogs.com/c-x-a/p/11599534.html

相关资源:Android uiautomator测试源代码
最新回复(0)