学习自动化测试工具Appium——iOS环境搭建

写在前面

因为工作需要进行手机App的iOS端自动化测试,所以特来学习工具Appium的使用。

Mac下的环境搭建

Xcode

本文的系统版本为Mac 10.13.6,使用Xcode 10.0,在 App Store 里获取即可:

学习自动化测试工具Appium——iOS环境搭建_第1张图片

Command Line Tools

Command Line Tools是在Xcode中的一款工具,可以在命令行中运行C程序,Xcode 默认是不会安装它的。

在Terminal中输入以下指令安装:

xcode-select --install

brew

brew是Mac下的一个软件包管理工具,非常方便,免去了自己手动编译安装的不便。

在Terminal中输入以下指令安装:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Node.js & npm

Node.js是一个Javascript运行环境(runtime environment)。

而npm(node package manager)是随同Node.js一起安装的包管理工具,能解决Node.js代码部署上的很多问题。

在Terminal中输入以下指令一并安装:

brew install node

Carthege

Carthage 是一款使用于 Swift 语言编写,只支持动态框架,只支持 iOS8+的Cocoa依赖管理工具。

在Terminal中输入以下指令安装:

brew install Carthage

其他依赖库安装

在Terminal中输入以下指令安装:

brew install libimobiledevice --HEAD
npm install -g ios-deploy  # 如果是iOS10以上的系统才需要安装

如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy

Python

Python 3.7 下载地址:

https://www.python.org/downloads/mac-osx

学习自动化测试工具Appium——iOS环境搭建_第2张图片

Pycharm

Pycharm是一款Python IDE,编写脚本所用。

PyCham 下载地址:

http://www.jetbrains.com/pycharm/download/#section=windows

学习自动化测试工具Appium——iOS环境搭建_第3张图片
  • 具体激活方法可自行百度

Appium

Appium是一个自动化测试开源工具,支持iOS和android平台上的移动原生应用、移动Web应用和混合应用。Appium是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。

官网:http://appium.io

Github:http://github.com/appium/appium

Appium-Desktop

下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.7.1

学习自动化测试工具Appium——iOS环境搭建_第4张图片

Appium Python-Client

Appium客户端依赖库支持Python、Ruby、Java、Javascript、PHP、C#等,本文使用Python,就安装Appium-Python-Client。

在Terminal中输入以下指令安装:

pip install Appium-Python-Client

Appium-Doctor

Appium-Doctor用于检测Appium运行环境是否搭建完成。

在Terminal中输入以下指令安装:

npm install appium-doctor -g

安装后执行appium-doctor --ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有哪一项是打叉的,则对应进行安装就可以了。

学习自动化测试工具Appium——iOS环境搭建_第5张图片

WebDriverAgent

Github:https://github.com/facebook/WebDriverAgent

iOS 10+使用的是XCUITest,Appium使用的模块是appium-xcuitest-driver,其中引用了Facebook提供的WDA方案来驱动iOS的测试。装Appium Desktop的时候,原生的WDA无法使用,需要从Facebook那里clone一份。

在Terminal中输入以下指令:

git clone https://github.com/facebook/WebDriverAgent.git

clone完后进入该目录下执行指令

cd WebDriveAgent
./Scripts/bootstrap.sh
学习自动化测试工具Appium——iOS环境搭建_第6张图片

下载编译完成后,直接用Xcode打开WebDriverAgent.xcodepro文件。

配置WebDriverAgentLib和WebDriverAgentRunner的证书:

学习自动化测试工具Appium——iOS环境搭建_第7张图片
WebDriverAgentLib
学习自动化测试工具Appium——iOS环境搭建_第8张图片
WebDriverAgentRunner

成功生成Signing Certificate之后,将Scheme改为WebDriverAgentRunner,Destination改为你的iPhone:

连接你的iPhone,按下Command + U,进行Test,再按下Command + Shift + C 调出 Activate Console查看调试信息:

学习自动化测试工具Appium——iOS环境搭建_第9张图片

若显示上述信息则运行成功

因为国内iPhone不能直接访问返回的地址,所以需要进行端口转接,在Terminal中运行以下指令:

iproxy 8100 8100

在浏览器输入 localhost:8100/status ,若成功访问且返回JSON格式数据则表示配置成功:

学习自动化测试工具Appium——iOS环境搭建_第10张图片

接下来用配置好的WebDriverAgent替换Appium自带的WDA,在Terminal中运行以下指令:

cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
mv WebDriverAgent WebDriverAgent2  # 将Appium自带的WDA改名
ln -s ~/WebDriverAgent WebDriverAgent  # 用Facebook的WDA替换进去

下载测试用程序:

git clone https://github.com/appium-boneyard/sample-code.git

打开Appium-Desktop,点击 Start Server,Host 和 Port 使用默认设置即可,点击右上角放大镜按钮(Start Inspector Session),配置如下属性:

学习自动化测试工具Appium——iOS环境搭建_第11张图片
{
  "platformName": "iOS",  # 测试平台名称
  "platformVersion": "12.0", # iPhone 版本
  "deviceName": "iPhone", # 设备名称
  "udid": "90a007e58e6a68519d3793a4371fb804c3c8df9c", # UDID
  "antomationName": "XCUITest", # 自动化工具名称
  "app": "/Users/administrator/sample-code/sample-code/apps/TestApp/build/Release-iphonesimulator/TestApp-iphonesimulator.app",  # app路径
  "noReset": true # 若app已存在,则不重新安装
}

点下 Start Session,等待一段时间后手机会安装指定的app,Mac上会弹出Inspector显示屏幕以及定位的原素:

ok,到这一步环境基本搭建完成了,下一章将介绍脚本如何运行

遇到的问题

许多问题都可以通过重启Mac或者iPhone解决。

你可能感兴趣的:(学习自动化测试工具Appium——iOS环境搭建)