『与善仁』Appium基础 — 1、Android系统的测试环境搭建

时间:2023-02-08 00:00:54

1、Android操作系统简介

(1)Android系统诞生

  • 2003年,Andy Rubin等人创建Android公司,并组建Android团队。
  • 2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
  • 2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,然后以Apache免费开源许可证的授权方式,发布了Android的源代码。
  • 2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
  • 2009年4月,谷歌正式推出了Android 1.5这款手机。

(2)Android系统的结构

  • 应用程序层:提供了一些核心应用程序包,用来存放应用程序,主界面、联系人、电话、浏览器、日历等。
  • 应用程序框架层:可以直接使用框架提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。
  • 系统库和 Android 运行时环境:系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带在程序运行时主要执行核心库和Dalvik虚拟机两部分。
  • Linux内核:为Android设备的各种硬件提供了底层的驱动。

我们做测试,关注较多的还是应用程序层。

如下图所示:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

(3)Android测试环境搭建整体思路

我们的目标是Android测试,所以环境需要搭建三个环境:Java环境,AndroidSDK环境,Android模拟器。

为什么要安装这三个环境?

  • Java环境:Android的应用程序层使用的语言是Java,所以需要使用Java环境。
  • AndroidSDK环境:Android SDK给你提供开发、测试所必须的Android API类库。
  • Android模拟器:实际上就是一台手机,方便我们给大家展示效果。

补充:

Java是安卓的开发语言。

Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个Java的application framework框架,所有的应用程序都是基于Java的application framework框架之上。而application framework框架需要使用Java调用,所以要搭建Android系统手机的测试环境需要Java环境。

2、Java环境安装

(1)JDK8下载

官方下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

国内下载镜像:

(2)安装JDK8

双击运行下载好的JDK软件。

1)安装JDK导向开始,点击下一步。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

2)自定义安装路径。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

3)开始安装JDK。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

4)安装JRE,并选择安装位置。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

5)正在安装JRE,等待安装完成即可。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

6)JDK和JRE安装完成,点击关闭。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

7)验证。

进入命令提示符中输入java -version查看Java环境是否安装成功。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

出现了Java的版本信息,就说明安装成功了。

(3)配置Java环境变量

配置Java环境变量的目的,是为了可以在任何目录下执行和使用Java命令和工具。方便在控制台编译和运行Java程序,不必进入到Java的程序目录(安装目录)里面去运行。

比如说,当你需要对Java程序文件进行编译和运行的时候,就可以在任何目录下使用java.exejavac.exe工具,对该文件进行编译和运行,不必把该程序文件放在java.exejavac.exe所在的目录下。

1)我的电脑 —> 右键 —> 属性,然后选择高级系统设置 —> 环境变量。

如下图所示:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

2)新增JAVA_HOME环境变量。

如下图所示:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

点击确定即可。

说明

  1. JAVA_HOME环境变量的变量值定位当JDK安装目录的根目录即可,也就说bin目录的上一级目录。(规范)
  2. 定义在上半部分的用户环境变量中,只是当前用户生效。配置在下面的系统环境变量中,对该系统中的所有用户都生效。我们自己的电脑,就定义在系统环境变量中即可。

3)把JAVA_HOME环境变量添加到Path环境变量中。

如下图所示:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

说明:JDK中就包含了JRE,如果有需要也可以在把JRE的环境单独的加入到Path环境变量中。

4)验证,进入命令提示符中输入javac查看Java环境变量是否配置成功。

出现了如信息就证明Java环境变量配置成功了。

如下图所示:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

3、Android SDK的安装步骤

Android SDK由Google针对其Android平台开发的专属软件开发工具包,可让您创建Android应用程序。

Android SDK是一款适用于移动应用程序开发人员的便捷程序,它包含了Android编程语言开始构建应用程序所需的所有内容,以及一个完整的功能设备模拟器,以便在您完成开发时进行测试。

(1)Android SDK下载

下载地址:http://www.androiddevtools.cn/

进入到下载页面点击Android SDK工具 —> SDK Tools 就会跳转到Android SDK的下载位置,然后我们根据自己的系统,按需下载就可以了。

如下图所示:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

(2)Android SDK安装

1)解压Android SDK压缩包

解压android-sdk_r24.4.1-windows.zip文件,当解压后的目录,放到你自己的指定位置。

记住这个目录的位置,并且目录中不要有中文。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

Android SDK的目录结构如下:

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

2)Android API的下载

Android SDK解压好后,我们需要下载Android API。API是一些预先定义的函数,通过调用这些函数,能够让程序得以使用设备自身的硬件或软件。

打开Android-sdk-windows文件夹,双击SDK manager.exe文件,我们需要安装ToolsPlatform-toolsBuild-toolsAPI等相关组件。在安装API时,根据要测试的模拟器或真机的Android版本而定,例如使用的真机是Android7.1.1版本,则Android SDK要下载Android7.1.1版本的API才可以。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

需要根据Android7.1.1对应的API等级下载对应Android SDK Build-tools版本。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

最后我们点击右下角的Install 1 package...或者Delete packages...对相关组件的安装或者卸载。

我们点击Install 1 package...安装所选组件。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

勾选Accept License然后点击Install进行安装。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

一个版本的Android API大概需要20个G左右的空间,需要耐心等待。

说明:

  • SDK Manager就是一个Android软件开发工具包管理器,就像一个桥梁,连通本地和服务器,从服务器下载安卓开发所需工具到本地。
  • SDK Platform下个最新的就可以了,它可以向下兼容。
  • Android Support Respository安卓兼容库,必须安装。

下面的SDK Manager说明图,总结的很好。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

3)配置国内镜像下载Android API

因国外资源有时候下载较慢,这时候可以配置国内镜像资源。

在弹出的Android SDK Manager窗口中,点击Tools ,下拉框点击Options...

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

镜像地址列表可以自己网上查找最新的。

(3)配置Android SDK环境变量

在命令提示符中输入adb命令会出现:“adb不是内部或外部命令”。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

解决的办法有两种:

  1. 配置Android SDK的环境变量。
  2. 直接进入Android SDK所在目录中的platform-tools目录中执行命令。

配置Android SDK环境变量,首先确保Android SDK相关组件都已下载完毕。然后同Java的环境变量配置大体相同。

1)进入到系统的环境变量配置界面。

我的电脑 —> 右键 —> 属性,然后选择高级系统设置 —> 环境变量。

2)在系统变量中新建ANDROID_HOME环境变量。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

3)将Android SDKplatform-toolstools的目录路径,添加到系统环境变量Path中。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

4)验证Android-SDK环境变量是否配置成功

重新开启一个命令提示符,输入adb命令,如下显示证明Android-sdk环境变量配置成功。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建

4、SDK manager.exe 闪退打不开解决方案

(1)问题原因

SDK Manager.exe通过调用android-sdk-windows\tools\lib\find_java.bat确认java.exe的路径。启用cmd.exe命令行切换路径到android-sdk-windows\tools\lib,执行find_java.bat工具,看到输出:C:\Windows\system32\java.exe

虽然该路径下存在java.exe,但是这并不是JRE的安装路径。估计是由于某些需要Java的软件在安装时,将 java.exejavaw.exejavaws.exe 复制到了 C:\windows\system32 下,导致 SDK Manager.exe 调用了错误位置的 java.exe 所致。

(2)解决方法

  • 方法1:删掉 C:\Windows\system32\ 下的 java.exejavaw.exejavaws.exe 即可解决。
  • 方法2:

    编辑打开android-sdk-windows\tools下的Android.bat文件。

    找到35行开始
    rem Check we have a valid Java.exe in the path.
    set java_exe=
    call lib\find_java.bat
    if not defined java_exe goto :EOF

    修改set java_exe=到你本地的Java安装目录中的java.exe 工具

    call lib\find_java.bat这行,改成 rem call lib\find_java.bat

    rem Check we have a valid Java.exe in the path.
    set java_exe=F:\DevInstall\envs\java\jdk1.8.0_144\jdk\bin\java.exe
    rem call lib\find_java.bat
    if not defined java_exe goto :EOF

    保存关闭Android.bat文件,重新打开Android SDK Manager即可。

『与善仁』Appium基础 — 1、Android系统的测试环境搭建的更多相关文章

  1. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  2. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  3. 『与善仁』Appium基础 — 10、Appium基本原理

    目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...

  4. 『与善仁』Appium基础 — 15、使用Appium的第一个Demo

    我们使用Python语言作为测试脚本的编写语言. 执行脚本前提: Android模拟器或者手机是开机状态. 使用确保电脑和Android设备进行了链接. 也就是使用ADB命令adb connect链接 ...

  5. 『与善仁』Appium基础 — 16、APPium基础操作API

    目录 1.前置代码 2.安装和卸载APP 3.判断APP是否已安装 4.关闭APP软件和关闭驱动对象 5.发送文件到手机和获取手机中的文件 6.获取当前屏幕内元素结构(重点) 7.脚本内启动其他APP ...

  6. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  7. 『与善仁』Appium基础 — 19、元素定位工具(三)

    目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...

  8. 『与善仁』Appium基础 — 20、Appium元素定位

    目录 1.by_id定位 2.by_name定位 3.by_class_name定位 4.by_xpath定位 5.by_accessibility_id定位 6.by_android_uiautom ...

  9. 『与善仁』Appium基础 — 21、元素的基本操作

    目录 1.元素的基本操作说明 (1)点击操作 (2)清空操作 (3)输入操作 2.综合练习 1.元素的基本操作说明 (1)点击操作 点击操作:click()方法.(同Selenium中使用方式一致) ...

  10. 『与善仁』Appium基础 — 22、获取元素信息的操作(一)

    目录 1.获取元素文本内容 (1)text()方法 (2)get_attribute()方法 (3)综合练习 2.获取元素在屏幕上的坐标 1.获取元素文本内容 (1)text()方法 业务场景: 进入 ...

随机推荐

  1. 遍历collection

    链接 遍历NSArray 正向遍历 for (id object in array) 反向遍历 for (id object in [array reverseObjectEnumerator]) 如 ...

  2. gpgcheck

    warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Public key for co ...

  3. ZMQ设置socket选项

    Name zmq_setsockopt –设置ZMQ socket的属性 Synopsis int zmq_setsockopt (void *socket, int option_name, con ...

  4. Delegation事情委托或代理

    在javasript中delegate这个词经常出现,看字面的意思,代理.委托.那么它究竟在什么样的情况下使用?它的原理又是什么?在各种框架中,也经常能看到delegate相关的接口.这些接口又有什么 ...

  5. pygtk手记(1)

    GTK+使用C语言开发,但是其设计者使用面向对象技术. 也提供了C++(gtkmm).Perl.Ruby.Java和Python(PyGTK)绑定,其他的绑定有Ada.D.Haskell.PHP和所有 ...

  6. 深入了解setInterval方法

    相信大家对setInterval方法肯定非常熟悉,但不少人对其缺乏深入的了解,致使当一个flash里有多个setInterval的时候就容易混淆,该清除的间隔lID没有清除,不该清除的时候却清除了.对 ...

  7. ios隐藏软键盘

    //判断是否为苹果 var isIPHONE = navigator.userAgent.toUpperCase().indexOf('IPHONE')!= -1; // 元素失去焦点隐藏iphone ...

  8. plist反序列化

    // //  ViewController.m //  03-plist文件的一个反序列化 // //  Created by jerry on 15/9/28. //  Copyright (c) ...

  9. Linux查看用户属于哪些组/查看用户组下有哪些用户

    一.关于/etc/group格式的讨论 在说/etc/group格式的时候,网上很多文章都会说是“组名:组密码:组ID:组下用户列表”,这说法对了解/etc/group格式是没问题的,但如果碰到“查看 ...

  10. java的类继承(与c++对比)

    1. interface的引入 使用interface来定义某一类通用操作,而又不强制规定其实现,对于Java的流行真是太重要了. 以JDBC举例.在Java之前,C++与数据库建立连接,常用的一个技 ...