Mac 环境下 Appium 的搭建
Appium 分为 appium 和 appium desktop。
appium 是相当于 selenium 的服务器端,在 terminal 启动后,接收脚本命令并在移动端上执行。
appium desktop 相当于一个图形化界面 GUI,可以用于元素定位和执行脚本,可另做选择的元素定位工具有 app inspector,只需要网页端就可使用。
appium desktop 稳定,但启动速度慢;app inspector 虽然启动速度快,但不适配最新的 Xcode (10.2) ,使用 terminal 编译 XCTestWD 时会报错,目前开发还未解决。
(注:app inspector 现已可以使用,参考 https://github.com/macacajs/app-inspector/issues/227 )
Appium的原理:
过程分为三部分:1. WebDriver script,就是测试脚本;2. Appium Server;3. Bootstrap.jar (Android) / WebDriverAgent (iOS),Bootstrap 相当于一个中间件、WebDriverAgent 是在手机上装一个应用。
启动 Appium 后,会首先开启一个监听 4723 端口的 server ,接收测试脚本发送过来的对应请求,再将对应的请求发送给中间件(注意这里的请求不是整个脚本文件,而是对应的命令请求,比如:点击一个元素就是一条请求)。然后,中间件会监听 4724 端口由 Appium Server 发送过来的相关请求,并且将请求转换成 UiAutomator/UiAutomator2 (Android) / XCUITest (iOS) 可以识别的命令并发给其进行处理。
一、appium 搭建
1. 安装所需依赖库:
a. node
brew install node
b. npm
brew install npm
c. carthage
brew install carthage
d. libimobiledevice (真机测试需要)
brew install libimobiledevice
e. ios-deploy (真机测试需要)
brew install ios-deploy
2.安装 appium
npm install -g appium
注:appium 在使用之前,需要对 WebDriverAgent 编译,需注意:1. 将 WebDriverAgent Lib 和 WebDriverAgentRunner 进行签名处理。 2. 将 WebDriverAgent Lib 和 WebDriverAgentRunner 的 Product Bundle Identifier 更改为自己的。
通过appium-doctor验证所有依赖是否安装成功,首先安装appium-doctor(npm install -g appium-doctor)然后在终端运行 appium-doctor --ios,安卓端换为 --android
二、app inspector 搭建
1. 安装所需依赖库:
a. macaca
npm i -g macaca-cli
b. ideviceinstaller
brew install ideviceinstaller
c. usbmuxd
brew install usbmuxd