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

写在前面

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

Mac下的环境搭建

Xcode

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

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

Pycharm

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

PyCham 下载地址:

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

  • 具体激活方法可自行百度

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 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相关配置是否完整,下图是全部配置都成功,如果有哪一项是打叉的,则对应进行安装就可以了。

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

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

配置WebDriverAgentLib和WebDriverAgentRunner的证书:

WebDriverAgentLib
WebDriverAgentRunner

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

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

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

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

iproxy 8100 8100

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

接下来用配置好的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),配置如下属性:

{
  "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解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容