目录
分享一下如何在mac电脑上搭建一个完整的appium自动化测试环境
准备工作
前期需要准备的设备和账号:
- mac电脑一台
- iphone一台
- 苹果开发者账号一个 (需要你具备一点基础的iOS开发相关的常识)
安装必需的软件
安装appium
appium的安装没有什么可多说的,按照官方 https://appium.io/#的指导安装就好了
bash
$ brew install node # get node.js
$ npm install -g appium # get appium
$ npm install wd # get appium client
安装完成之后检查一下是否安装成功。后续在使用的过程中直接使用appium的命令行工具,桌面版也可以用但是没有命令行用着简介,而且桌面版还消耗电脑内存,mac电脑本身内存就比较珍贵
bash
$ appium --version
1.22.0
安装XCode
mac电脑一般都自带xcode工具,没有的可以去appstore里面安装一个最新版本即可
下载WDA工程
什么是WDA?
借用官网的一段解释:WebDriverAgent is a WebDriver server implementation for iOS that can be used to remote control iOS devices. It allows you to launch & kill applications, tap & scroll views or confirm view presence on a screen. This makes it a perfect tool for application end-to-end testing or general purpose device automation.
WDA其实就是代理iphone开放一些可用的能力和接口给外界提供自动化的这么一个工具
GitHub - appium/WebDriverAgent: A WebDriver server for iOS and tvOS
查找自己所需的WDA的版本,选择下载源码工程(WDA和appium和xcode的版本的对应关系后再补充,一般都选择最新版本基本就可以匹配)
下载后的源码先保存到一个固定的位置,然后解压进入到工程文件夹呢,双击xcodeproj这个文件即可启动xcode工程
配置WDA工程
前面章节的图里已经提到了我们使用appium做iOS的自动化,需要在手机上面运行wda这个工程(确切的说是个服务)
所谓的配置wda工程,其实主要的目的就是为了让wda这个工程可以在我们的目标测试机上运行起,下面的流程和ios开发人员配置一个测试包在自己的测试机上跑起来是一个道理,这里只介绍流程详细原理可以参考ios的开发流程
wda是个ios工程,它有自己的BundleId, com.facebook.WebDriverAgentRunner, 我们也可以自己给它重新申请个新的BundleId, 所以前面的前期准备工作我们提到了我们需要一个苹果开发者账号,我们可以把wda的BundleId注册到当前的开发者Team账号上,然后测试用的iPhone手机也需要加到当前开发者账号的内测名单里面,这样wda工程就可以跑在我们的iPhone测试机上了
下面是具体的工程配置流程
此时手机上我们应该能看到安装了一个webdriveragent的APP
至此已经完成了wda的配置和运行,然后停掉Test工程,或者关闭xcode即可。因为我们后面使用wda做自动化不建议直接用xcode桌面版来启动wda.(哦,前面忘记提了,如果使用appium+wda做iOS的自动化,这两个工程是需要一直启动着的)
搭建appium+wda自动化环境
根据上面的解释,如果appium想和iPhone进行交互,需要借助wda这个工具,前提是我们必须得用xcode在本机mac开一个代理端口作为appium和wda交互的通信端口,上面提到的8100端口就是这个通信端口。我们刚刚也说了我们不希望在自动化的时候一直开着xcode桌面版本,好在xcode还提供了命令行工具xcodebuild (xcodebuild工具的安装和配置可自行baidu或者google)
第一步:启动通过xcodebuild命令启动wda服务
bash
$ xcodebuild -project /Users/apple/Documents/WebDriverAgent-4.13.2/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=00008030-001245810ED0802E' USE_PORT=8104 test
参数说明:
-project # 我们上线下载并在xcode配置好的wda工程的工程启动文件WebDriverAgent.xcodeproj
-scheme WebDriverAgentRunner
-destination 'id=00008030-001245810ED0802E' # 目标iPhone,前提是已经通过usb链接到本地mac
USE_PORT=8104 test # 本机mac开放的appium和wda通信的端口,默认是8100,我们也可以自行指定
目录
bash
$ appium -p 8904 --webdriveragent-port=8104
参数说明:
-p 8904 # appium开放给测试脚本使用的端口
--webdriveragent-port=8104 # 上面xcodebuild开放给appium和wda通信的端口
至此整个环境就配置完了,下面就可以通过本机的8904端口进行appium的UI自动化了
未尽事宜会在其它文章中继续补充