1.Appium简介
随着互联网的迅速发展,为了满足用户的需求,软件产品的迭代速度也越来越快,持续集成(CI)和持续交付(CD)都旨在缩短软件的开发周期、提高软件交付效率以及实现全流程的自动化测试。对于测试人员来说,使用自动化的测试手段去完成一些重复性高的回归测试工作、性能测试工作,可以节省更多的经历去探索、发现更复杂的系统业务逻辑的问题。
对于App客户端UI界面的功能测试,Appium是一个非常好的工具,它支持Android、iOS系统的原生应用、网页应用以及混合应用,同时也支持多语言,如Java、Python、Ruby、JS等。可以使用Appium完成App的回归测试、冒烟测试等工作。
2.Appium架构
(1)Appium设计 “哲学”
1)不需要为了自动化测试而重新编译或修改被测应用。
2)不把移动端App自动化测试限定在某种语言或者某个具体的框架上。
3)不为移动端App的自动化测试而重新 “造轮子”。
(2)Appium架构介绍
Appium架构如图5-1所示。
Appium的核心功能是具有Web服务器功能,可以监听客户端发来的请求,并在移动设备上执行相应的操作,最终将执行结果以HTTP响应的方式返回给客户端。这种客户端/服务端的架构设计,允许测试人员用多种语言(如Java、Python、Ruby等)编写测试代码。
在Android和iOS等不同平台上,Appium使用了不同的驱动进行自动化测试。Appium驱动列表如表5-1所示
平台 | 驱动 | Appium版本 |
---|---|---|
iOS | XCUITest | 1.6.0+ |
UiAutomation | All | |
Android | Espresso | 1.9.0+ |
UiAutomator2 | 1.6.0+ | |
UiAutomator | All | |
Windows | Windows | 1.6.0+ |
3.Appium支持的语言
Appium支持表5-2所示的语言(编写测试用例)。
语言 | 支持 |
---|---|
Java | 是 |
Python | 是 |
JavaScript(WebDriver Io) | 是 |
JavaScript(WD) | 是 |
Ruby | 是 |
PHP | 是 |
C# | 是 |
4.配置Appium环境
Appium的Windows版本只支持Android系统,Appium的macOS版本同时支持Android系统和iOS系统。这里只介绍Appium的macOS版本的安装。
(1)Appium环境依赖
Appium依赖的软甲如下:
Java1.8;
Android SDK;
Appium Desktop.
其中推荐使用Java1.8版本。Android SDK是Android系统的开发工具包,里面有很多自动化测试常用的工具。Appium Desktop提供了服务与录制功能。
下面介绍Appiium的环境配置。一下环境变量的配置,需要打开macOS系统中的terminal终端来完成,环境变量可以配置在~/.bash_profile下。如果我们使用的是'zsh'环境(‘zsh’是Shell的一种),则需要配置环境变量到~/.zshrc下。
Appium的安装说明参见测试人论坛:
(2)Appium客户端安装(Python版本)
如果想要在代码中能够导入相关的依赖包,需要安装第三方库,具体命令如下:
pip install Appium-Python-Client
(3)Appium客户端安装(Java版本)
当时用Maven或Grandle等构建工具时,我们可以通过配置文件需要的依赖项,运行这些工具的命令时会自动加载这些依赖项。
<properties>
...
<!-- 尽可能时用Appium最新版本-->
<appium.version>7.3.0</appium.version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>${appium.version}</version>
</dependency>
...
</dependencies>