前提:
jdk1.8已安装,系统macOS
一、as和sdk的安装
1、下载android studio
https://developer.android.google.cn/studio/
2、下载成功后打开:
点击configure ->preferences
安装sdk(建议根据被测对象的版本安装,sdk版本比被测机高的话执行会报错)
进入sdk tools
勾选完成后进行下载(网络不好的话时间会久一点)
二、新建项目
安装好后,新建项目
选择no activity
选择语言,sdk,finish
成功后会自动下载gradle,安卓项目使用gradle管理依赖的。
完成后会有这样的报错,点击re- download也没有反应,后续才知道需要build一下,点击app- build.gradle文件中的apply suggestion
最后更换项目展示结构,选择project
三、添加依赖
打开app的build.gradle
uiautomator是安卓UI自动化测试框架,但是不支持xpath元素定位,这里想和appium一起合作
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.1.0'
androidTestImplementation group: 'io.appium', name: 'java-client', version: '7.5.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation group: 'com.android.support.test.uiautomator', name: 'uiautomator-v18', version: '2.1.3'
监测到有修改,点击同步,就会下载依赖
四、编写代码
在这个目录下编写
进入android-sdk目录,选择元素查看工具:
1、uiautomator测试
import android.util.Log;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.uiautomator.UiDevice;
import androidx.test.uiautomator.UiObject;
import androidx.test.uiautomator.UiObjectNotFoundException;
import androidx.test.uiautomator.UiScrollable;
import androidx.test.uiautomator.UiSelector;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* 根据app的名称启动 (eg:网易云)
* 前提:知道软件所在的第几个屏幕
* */
@RunWith(AndroidJUnit4.class)
public class fromAppName {
private static final UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
@Test
public void startApp2() throws InterruptedException, UiObjectNotFoundException {
Log.d("fromAppName.java", "准备打开app");
//5s后开始调试,先返回桌面
Thread.sleep(5);
uiDevice.pressHome();
//开启水平滑动
UiScrollable uiScrollable = new UiScrollable(new UiSelector().scrollable(true));
uiScrollable.setAsHorizontalList();
//向左边滑动2次
uiScrollable.scrollForward(2);
// uiScrollable.scrollForward(2);
uiDevice.findObject(new UiSelector().text("网易云音乐")).click();
UiObject skip = uiDevice.findObject(