龙空技术网

安卓 Android 自动化傻瓜式教程-java版(appium)

大龄测试程序员 48

前言:

如今咱们对“安卓使用java”大概比较关怀,你们都想要知道一些“安卓使用java”的相关资讯。那么小编同时在网络上汇集了一些有关“安卓使用java””的相关内容,希望朋友们能喜欢,同学们快快来了解一下吧!

还在说你不会安卓自动化,看了这篇文章,你就能迅速掌握appium的自动化了

不要感觉环境依赖安装麻烦,这些早晚你都是需要安装失业的,顺着文档挨个执行,你肯定能成功,时间最多1d,快的话半天

1、依赖基础环境安装准备

Java JDK安装,环境变量配置Android SDK安装,环境变量配置Node js 安装(appium组件依赖node js完成脚本解析)Appium Desktop 安装安卓模拟器安装(夜神模拟器)

2、Java开发工具安装

idea安装maven安装

3、Demo开发测试

夜神模拟器安装有道计算器开发自动化代码测试

下面是具体安装过程,有安装的可以略过直接往后看

1.1 Java JDK安装,环境变量配置

搜索进入官网,Oracle,按照指示下载(版本推荐JDK8)

一般都都选择64位

Java SDK安装

下载后直接双击安装

添加环境变量,按 windows + R键,输入:sysdm.cpl

然后点击确认

将路径更换为自己java安装路径

JAVA_HOME

D:/***/jdk1.8.0_144

新建再CLASSPATH,注意前面的逗号和分号不能丢掉

CLASSPATH

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

找到path环境变量,点击新建

%JAVA_HOME%\bin

%JAVA_HOME%\jre\bin

验证是否成功,win+R 输入cmd,然后输入 java -version 验证java环境是否安装成功

显示以下内容表明安装成功

1.2、Android SDK安装,环境变量配置

下载链接:

可以下载zip或者exe(exe安装时,记住安装路径)

安装完后,进入安装路径,打开这个SDK Manager

勾选

一般根据默认推荐安装即可。

如果自选,必选项:

Android SDK Tools:基础工具包,版本号带rc字样的是预览版

Android SDK Platform-tools:从android2.3开始划出此目录,存放公用开发工具,比如adb、sqlite3等,被划分到了这里

Android SDK Build-tools:Android项目构建工具

SDK Platform:对应平台的开发工具,需要下载Android xxx(API xx)的版本里面已经包含了

Android xxx(API xx) :可选的各平台开发工具,一般选择最新版本即可

Extras目录:

Android Support Repository:主要是方便在gradle中使用Android Support Libraries,因为Google并没有把这些库发布到maven center或者jcenter去,而是使用了Google自己的maven仓库

Google Web Driver:被测APP里有用到H5的话就需要勾选,

Intel x86 Emulator Accelerator(HAXM installer):windows平台的Intel x86模拟器加速工具,配合Intel x86 atom/atom_64 System Image使用可加快模拟器的运行速度

下面是我的安装勾选效果

勾选后点击安装

接着配置Android SDK环境变量

ANDROID_HOME 设置,变量名:ANDROID_HOME。变量值:sdk安装路径。Path 设置,同样在环境变量页面,系统变量中,找到Path,分别添加tools安装路径、platform-tools安装路径、Android新版API安装路径,均在SDK目录下。

验证安装是否成功,在cmd中输入adb,验证sdk是否安装配置成功。 出现图示为安装成功

1.3、node js安装

前往 , 下载然后安装

安装完后,检测版本(我这个是安装了多个版本的node,安装了nvm)

1.4、appium desktop安装

从github安装,

或者从 网盘获取,我下载的是1.7.1版本然后确认安装路径无误后,保存

1.5、安卓模拟器安装

模拟器安装

前往 ,下载最新版本,直接安装即可

安装完成后,前往 下载一个 有道计算器,

然后直接让apk的计算器安装包拖进夜神模拟器,直到计算器安装完成

模拟器adb版本替换为Android SDK adb 版本

把Android SDK目录下\platform-tools的adb.exe拷贝到Nox\bin目录(夜神模拟器的安装目录),然后删除当前目录下的nox_adb.exe,再将拷贝过来的adb.exe改名为nox_adb.exe

2、Java开发工具安装

2.1 idea安装,

2.2 maven安装

下面是具体Demo开发过程

3、Demo开发测试

新建maven项目

新建工程后,新建AppiumTestDemo类

package app;import io.appium.java_client.AppiumDriver;import io.appium.java_client.MobileElement;import io.appium.java_client.android.AndroidDriver;import io.appium.java_client.service.local.AppiumDriverLocalService;import org.openqa.selenium.remote.CapabilityType;import org.openqa.selenium.remote.DesiredCapabilities;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;import java.net.MalformedURLException;import java.net.URL;public class AppiumTestDemo {    private AppiumDriver appiumDriver;    public static AndroidDriver<MobileElement> androidDriver;    public static AppiumDriverLocalService service;    @BeforeClass    public void setup() throws Exception {        // 手动启动appium service        connectDirect();        // 通过代码启动appium service//        startAppiumWhenConect();    }    private static void startAppiumWhenConect() {        service = AppiumDriverLocalService.buildDefaultService();        DesiredCapabilities cap = new DesiredCapabilities();        cap.setCapability("platformName", "Android");        cap.setCapability("deviceName", "127.0.0.1:62001");        cap.setCapability("platformVersion", "7.1.2");        cap.setCapability("appPackage", "com.youdao.calculator");        cap.setCapability("appActivity", "com.youdao.calculator.activities.MainActivity");        System.out.println("DesiredCapabilities_init");        service.start();        System.out.println("DesiredCapabilities_init_done");        androidDriver = new AndroidDriver(service, cap);    }    private void connectDirect() throws MalformedURLException {        DesiredCapabilities cap = new DesiredCapabilities();        cap.setCapability(CapabilityType.BROWSER_NAME, "");        cap.setCapability("platformName", "Android"); //指定测试平台        cap.setCapability("deviceName", "127.0.0.1:62001"); //指定测试机的ID,通过adb命令`adb devices`获取        cap.setCapability("platformVersion", "7.1.2");        //将上面获取到的包名和Activity名设置为值        cap.setCapability("appPackage", "com.youdao.calculator");        cap.setCapability("appActivity", "com.youdao.calculator.activities.MainActivity");//        //A new session could not be created的解决方法//        cap.setCapability("appWaitActivity", "com.meizu.flyme.calculator.Calculator");//        //每次启动时覆盖session,否则第二次后运行会报错不能新建session//        cap.setCapability("sessionOverride", true);        appiumDriver = new AndroidDriver(new URL(";), cap);    }    @Test    public void plus_youdao() throws Exception {        Thread.sleep(3000);        int width = appiumDriver.manage().window().getSize().width;        int height = appiumDriver.manage().window().getSize().height;        int x0 = (int) (width * 0.8);  // 起始x坐标        int x1 = (int) (height * 0.2);  // 终止x坐标        int y = (int) (height * 0.5);  // y坐标        // 左滑4次        for (int i = 0; i < 4; i++) {            appiumDriver.swipe(x0, y, x1, y, 500);            Thread.sleep(1000);        }        // 新手规则        appiumDriver.findElementById("com.youdao.calculator:id/guide_button").click();        // 增加线程休眠,避免后续的webView获取不到数据        Thread.sleep(1000);        for (int i = 0; i < 6; i++) {            appiumDriver.findElementByXPath("//android.webkit.WebView[@text='Mathbot Editor']").click();            Thread.sleep(1000);        }        String btn_xpath = "//*[@resource-id='com.youdao.calculator:id/view_pager_keyboard']/android.widget.GridView/android.widget.FrameLayout[%d]/android.widget.FrameLayout";        // 123 * 8        appiumDriver.findElementByXPath(String.format(btn_xpath, 17)).click();        appiumDriver.findElementByXPath(String.format(btn_xpath, 18)).click();        appiumDriver.findElementByXPath(String.format(btn_xpath, 19)).click();        // *        appiumDriver.findElementByXPath(String.format(btn_xpath, 10)).click();        // 111        appiumDriver.findElementByXPath(String.format(btn_xpath, 17)).click();        appiumDriver.findElementByXPath(String.format(btn_xpath, 17)).click();        appiumDriver.findElementByXPath(String.format(btn_xpath, 17)).click();        // -        appiumDriver.findElementByXPath(String.format(btn_xpath, 15)).click();        appiumDriver.findElementByXPath(String.format(btn_xpath, 8)).click();        Thread.sleep(3000);    }    @AfterClass    public void tearDown() throws Exception {        appiumDriver.quit();    }}

根据代码提示添加依赖包,或者手动添加

<dependencies>        <dependency>            <groupId>io.appium</groupId>            <artifactId>java-client</artifactId>            <version>4.1.2</version>        </dependency>        <dependency>            <groupId>org.testng</groupId>            <artifactId>testng</artifactId>            <version>6.14.2</version>        </dependency>    </dependencies>

启动appium服务,如下,配置host后,点击启动

如下图,表示服务启动成功

启动Java代码,运行安卓模拟器里面的计算器进行计算,点击test

运行效果

标签: #安卓使用java #javamobile #java手游模拟器安卓版 #安卓手机java模拟器 #安卓手机java模拟器下载