【Appium学习笔记】从零搭建Android自动化测试环境


一、Appium简介

Appium是用于本机, 混合和移动Web应用程序的 开源测试自动化框架。它使用WebDriver协议驱动iOS,Android和Windows应用程序

WebDriver参考

Appium支持的开发平台

操作系统 开发平台
IOS XCode w/ Command Line Tools
Android Mac OSX or Windows or Linux and Android SDK ≥ 16

Appium资源

二、测试环境

【Appium学习笔记】从零搭建Android自动化测试环境
Appium运行测试环境包括

  • Appium-Client
  • Appium-Server
  • 移动设备

1. Appium-Client

客户端,开发者可以选择自己擅长的开发语言来写测试代码,我选择的是C#,所以会在C#项目的Nuget包里引用Appium

Appium.WebDriver

【Appium学习笔记】从零搭建Android自动化测试环境

2. Appium-Server

Appium-Server通过接受Client传递过来的指令,将指令发送给App,驱动App做出相应动作。Appium Desktop内置Appium-Server,并且支持控件识别,录制动作等功能,这里选择自己电脑支持的安装包

Appium-Desktop

【Appium学习笔记】从零搭建Android自动化测试环境

3. 移动设备

这里我们选择模拟器来代替真实移动设备,由于我的机器是Window系统,暂时只考虑使用安卓模拟器,我选择的是模拟器是原生的Android Emulator,关于如何配置,我的开发IDE是Visual Studio 2019, 其移动开发技术Xamarin内置了Android的一些配置

三、软件配置

1. Window系统配置

需要在BIOS中开启虚拟化技术

配置Win10解决VMware Intel VT-x虚拟化问题

如果配置成功,任务管理器会出现虚拟化已启用
【Appium学习笔记】从零搭建Android自动化测试环境
需要开启模拟器硬件加速设置

通过硬件加速提高仿真器性能 (Hyper-V & HAXM)

2. Android Emulator配置

2.1 移动开发组件安装

我使用Visual Studio 2019来配置Android Emulator,首先需要确保Visual Studio 2019已经安装移动开发组件,Visual Studio Installer -> Mobile development with .Net
【Appium学习笔记】从零搭建Android自动化测试环境

2.1 Android SDK安装

进入Visual Studio 2019,打开Android选项,首先配置Android SDK
【Appium学习笔记】从零搭建Android自动化测试环境
选择Android版本以及SDK Build Tools
【Appium学习笔记】从零搭建Android自动化测试环境
安装好之后所有工具都在Android SDK目录

C:\Program Files (x86)\Android\android-sdk

接下来,我们可以新建虚拟设备,打开Android Device Manager,在里面新建自己需要的设备,我们可以在这里启动虚拟设备
【Appium学习笔记】从零搭建Android自动化测试环境
【Appium学习笔记】从零搭建Android自动化测试环境

3. Appium Desktop配置

3.1 环境变量配置

首先需要编辑配置文件设置环境变量
【Appium学习笔记】从零搭建Android自动化测试环境
配置Android SDKJava SDK变量

  1. ANDROID_HOME : Anroid SDK的安装目录,在VS配置Android Emulator时已安装
  2. Java_Home : Java SDK的安装目录,本文没有提到Java SDK的安装,需自己安装

3.2 Desired Capbilities配置

配置好环境变量后启动服务,然后需要新建一个Inspector Session
【Appium学习笔记】从零搭建Android自动化测试环境
Desired Capbilities选择,对于Android而言有6个必需的参数,Appium知道以下参数才能在虚拟设备中找到某个App
【Appium学习笔记】从零搭建Android自动化测试环境

  • platformName : 平台名,Android
  • platformVersion : Android版本,可以在配置虚拟设备时获取
  • deviceName :虚拟设备在Window中的地址
  • appPackage : app的包名
  • appActivity : app的Activity名称
  • automationName : 自动化名称

关于参数的名称,可以参考以下资料

Appium-Server与Appium-Desktop的区别

deviceName的获取: 在Adroid Device Manager里启动虚拟设备后,这时虚拟设备在Window中就存在一个地址,这里使用adb工具获取该地址, 这里emulator-5554就是deviceName的值

“C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe” devices

【Appium学习笔记】从零搭建Android自动化测试环境
appPackageappActivity的获取参考以下资料

appium测试之获取appPackage和appActivity

automationName的设置,之前没有设置automationName结果一直启动失败,后来参考这篇文章需要把automationName设置为UiAutomator1解决了问题

Python+appium自动化踩坑(二):Original error: The instrumentation process cannot be initialized. Make sure the application under test does not crash and investigate the logcat output.

四、测试案例

1. 启动Andriod Emulator

首先我们在Visual Stuido 2019Android Device Manager中启动一个虚拟设备

2. 设置Desired Capbilities

以虚拟设备里的拨号功能app为例,我们这样设置Desired Capbilities(有些参数根据自己的虚拟设备获取)
【Appium学习笔记】从零搭建Android自动化测试环境

3. 启动Session

启动后可以看到虚拟设备中的拨号功能app
【Appium学习笔记】从零搭建Android自动化测试环境

五、脑图总结

【Appium学习笔记】从零搭建Android自动化测试环境


现在,Appium关于Android的测试环境已经成功搭建,接下就可以进行脚本编写以及测试了。从零搭建Android测试环境对于一个没有移动端开发经验的人来说真的是很困难,好在这句话一直在支持着我,最后也成功解决了问题

只要思想不滑坡,办法总比困难多。