最流行的移动自动化测试框架 Appium

接下来,我们从最流行移动自动化测试框架 Appium 入手,掌握 App 移动自动阿测试技能。

Appium 架构介绍与开发环境搭建

1. Appium 简介

目前大部分公司都有自己的客户端产品,包括手机,平板,可穿戴设备,TV等。随着互联网发展的迅速,为了满足用户的需求,产品迭代速度也越来越快,持续集成(CI)和持续交付(CD)都体现了如今快节奏市场中的文化和发展原则,旨在缩短开发周期、提高软件交付效率以及实现全流程的自动化。对于测试人员来说,使用自动化的手段去完成一些重复性高的回归测试工作、兼容性测试、或者性能测试工作,将更多的精力去探索发现更复杂的业务逻辑上的问题显得尤为重要。对于客户端产品的 UI 界面的功能性测试,Appium 是一个非常好的选择,它支持 Android、iOS 以及 Firefox 系统的原生应用、网页应用以及混合应用,同时也支持多语言,比如主流的语言Java、Python、Ruby、JS等。测试工程师可以使用 Appium 来辅助完成回归测试,冒烟测试等测试阶段的工作。

2. Appium 架构介绍

2.1 Appium 设计哲学

  • 不需要为了自动化而重新编译或修改测试应用
  • 不应该让移动端自动化测试限定在某种语言或者某个具体的框架
  • 不要为了移动端的自动化测试而重新造轮子
  • 移动端自动化测试应该是开源的

解释上面一段话,测试人员不需要重新编译或者修改测试的 App 也能够直接对它进行自动化测试。任何人都可以使用自己最擅长的语言以及框架来做移动端自动化测试。不需要自己重新设计开发一套 API,Appium Webdriver 已经为你定义好了一套协议的 API,直接拿过来改进就可以了。

2.2 Appium 架构

Appium 架构图如下:

图片标题

Appium 的核心是一个 Web 服务器,它提供了一套 REST 的接口。它接收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP 响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性,比如我们可以使用任何实现了该客户端的语言来写我们的测试代码,比如我们可以把服务端放在不同的机器上,比如我们可以只写测试代码,然后使用云服务来解释命令。

Appium 这样设计思想不但支持多语言,而且可以把 Server 布署到任意机器上,也可以布署在云服务器上。

Appium 设计

Appium 的工作引擎是第三方库,对于 Android、iOS 底层使用了不同的工作引擎驱动实现自动化测试。Appium 真正的工作引擎列表如下:

  • iOS 9.3 包含以及更高版本: Apple's XCUITest
  • iOS 9.3 更低版本: Apple's UIAutomation
  • Android 4.3 以上版本: Google's UiAutomator/UiAutomator2
  • Windows: Microsoft's WinAppDriver

对于 Android 系统,Appium 目前使用的是 UiAutomator2 Driver 作为默认驱动引擎,对于 iOS 系统,Appium 目前默认的工作引擎是 XCUITest 。Appium 还包含了 Windows Driver 和 Mac Driver 支持 Windows 和 Mac 桌面应用的测试。

3. Appium 环境安装

Appium 可以运行在 Windows、MacOS、Linux 系统。

  • 如果使用 Windows/Linux 系统只能测试 Android 系统的客户端设备
  • 如果想同时测试 Android 和 iOS 两个系统的测试设备,需要使用 MacOS 操作系统

Appium 环境安装主要分为四大部分:

  • 安装 JDK 和 Android SDK:为了驱动 Android 设备需要安装 Android SDK,里面有 adb,aapt,uiautomatorviewer 等命令行工具,而 Android SDK的使用又需要 Java 环境。这里我比较推荐大家直接下载 Android Studio 来配置管理 Android SDK
  • 安装 Node.js 和 Appium-Desktop: Appium Server 是用 Node.js 实现的,所以需要先安装 Node.js。Appium-Desktop 是Appium的界面化版本,这个版本不仅仅包含了Appium server,还提供了一些周边工具,如用例录制,UI元素查找,对于初学者入门非常友好
  • 开发语言使用 python,python是个非常强大的脚本语言,有非常丰富的第三方库,对于语言基础薄弱的同学也很容易上手。这里需要安装 python 第三方库 appium-python-client
  • 需要准备一个 Android 的真机或者模拟器,准备一个待测APP,比如我选择雪球APP,你们也可以选择一个你们想要测试的一个APP

这里详细介绍 MacOS 系统环境搭建,其它系统自行Google或者百度。

MacOS 系统环境搭建

注意事项

  • Java 推荐使用 1.8 版本
  • Android SDK 的 build-tools/ 下面不要下载 30 及 30 以上版本
  • 以下环境变量的配置,需要打开 MacOS 系统中的 terminal 终端来完成,环境变量都配置在~/.bash_profile下即可

JAVA 环境配置

由于 Android SDK 需要依赖 Java 环境,所以这里要提前将 Java 安装到电脑上并配置好环境变量。

Java 官网下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

下载对应平台的 JAVA 版本,这里下载jdk-***_osx-x64_bin.dmgjdk 文件,默认安装即可。然后配置环境变量,需要配置的环境变量包括:JAVA_HOME,PATH,CLASSPATH。环境变量配置如下:

JAVA_HOME 配置:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home

注意:JAVA_HOME 需要大写,后面配置 PATH 和 CLASSPATH 会用到,需要将路径指定到 JDK 的安装路径。

PATH 配置:

export PATH=$PATH:$JAVA_HOME/bin

classpath 配置:

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

注意:CLASSPATH 里面配置的变量最后面加上点.,配置的环境变量之间以冒号分隔:。配置完成后保存文件,使用命令source ~/.bash_profile使环境变量生效。

检查 JAVA 环境进入命令行,重新打开一个命令行界面,输入java -version或javac -version,输出版本号信息即成功。

SDK 环境配置

测试过程中我们会使用一些常用的工具,比如 adb ,uiautomatorviewer 等用来对客户端进行安装、卸载、获取日志、分析页面的数据信息等。SDK 工具包给我们提供了实现这些功能的工具。

Android Studio 官网为我们提供了 SDK 文件的下载资源。也可以使用 SDK Manager 来管理我们的用例。

先下载 Android Studio ,下载地址:
https://developer.android.google.cn/studio/#downloads
通过官网下载Android Studio对应版本后,直接安装即可。

SDK 需要安装的部分,在 Android Studio 欢迎界面打开 SDK Manager,在SDK Tools目录下按照如下选择进行安装:

图片说明

  • 配置环境变量

在环境变量中配置 ANDROID_HOME 变量,值为 SDK 的根目录,之后将四个文件夹配置到path变量中,并使用source命令或者重启让配置生效

$ANDROID_HOME/platform-tools
$ANDROID_HOME/emulator
$ANDROID_HOME/tools
$ANDROID_HOME/tools/bin
  • 确认配置是否生效

在命令行执行adb version,确认没有报错,提示的adb位置是之前所安装的sdk目录下,在命令行执行emulator -version,确认没有报错,并且显示了Android emulator version信息。

Appium Desktop

Appium Desktop 是 Appium 的图形化界面工具和 Appium 相关的工具集合。它集成了 Appium Server 与 Appium Inspector。

  • Appium Server 图形化界面展示,可以设置选项、启动/停止服务器、查看日志等功能。使用 Appium Server 不需要额外安装 Node.js。

  • Appium Inspector 用来查看应用页面元素,并进行基本的交互。

下载对应操作系统的安装包:

https://github.com/appium/appium-desktop/releases

图片说明

安装完 Appium Desktop 可以直接打开应用点击首页上的 ‘Start Server’,即可完成 Appium 服务的启动。无须配置 Host 与 Port,使用默认即可,这个配置表示在本机监听 4723 端口,一旦发现这个端口有请求发送过来,就会监听到这个请求,并做出响应。

Appium Server安装

如果不需要 Appium Inspector 功能,也可以通过 Node.js 里的 npm 工具直接安装 Appium,安装命令如下:

npm install -g appium

上面的安装方式是官方提供的,经常会出现下载超时,安装失败等问题。推荐使用下面的安装方式,使用 cnpm 进行安装。安装方法如下:

npm install -g cnpm \
--registry=https://registry.npm.taobao.org 

cnpm install -g appium@1.15

上面的命令首先使用 npm 安装 cnpm ,然后再使用 cnpm 安装 appium 即可。安装完成在命令行中输入appium即可完成服务的启动。可以在后面指定appium的版本号。

Appium Client

Appium Python Client 是 Appium 的 Python 语言版本的客户端(如果使用其它语言可以下载对应的 Appium ** Client),Appium Python Client 提供了一套 API,在编写脚本的时候可以使用这里面提供的 API 来完成测试脚本的编写。

安装方法:

pip install appium-python-client

安装成功,在所安装的 Python 环境下,输入from appium import webdriver,能够导入成功说明能够使用 Appium 的 API。

小结

以上,我们实现了 Appium 环境搭建,接下来掌握 Appium 脚本录制神器。

<p> 专刊包含了10+年经验测试架构师对测试职业发展的深度解读 帮助你掌握当下 BAT 流行的 App 自动化测试技术基础技能和工具使用;以及从入门到进阶的自动化测试实战经验,在面试中能够脱颖而出。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p> <p> <br /> </p>

全部评论

相关推荐

头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务