在做这一节之前先配置我的另一篇文章所需要安装的前提准备条件:《【Mac + Appium学习(一)】之安装Appium环境前提准备》
一、安装IOS自动化测试环境
配置环境:
- Appium version :1.9.1
- Appium-desktop:1.7.1
- Xcode:10.0
- iPhone5S:IOS(10.3.3)
- Mac:10.13.6
1、安装类库
①安装Homebrew、npm
参考我的另一篇文章:
《【Mac + Python】苹果系统之安装Python3.6.x环境》homebrew安装及解决问题办法
npm因为是安装node.js自带的所以参考《【Mac + Appium学习(一)】之安装Appium环境前提准备》
②安装依赖库:libimobiledevice、ios-deploy
brew install libimobiledevice --HEAD
但是报错:
Warning: libimobiledevice HEAD-26373b3_2 is already installed and up-to-date
To reinstall HEAD_3, run `brew reinstall libimobiledevice`
执行下面命令就可以了:
brew reinstall libimobiledevice
安装ios-deploy
sudo npm install -g ios-deploy --unsafe-perm=true
如果执行sudo npm install -g ios-deploy --unsafe-perm=true
报错,则执行sudo xcode-select --switch/Applications/Xcode.app/Contents/Developer/
如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
③appium-doctor 安装
npm install appium-doctor -g
④安装完成后执行:
appium-doctor –ios
可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果出现有一项不正确在执行一次就可以,或者直接跳过
2、更新Appium中的WebDriverAgent
下面的①②参考我的另一篇文章,里面有详细步骤,在这里只是简述:《【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(一):WebDriverAgent安装》
1)配置完出现下面控制台信息则正确,具体参考上面的文章:
2)执行端口转发:
$ iproxy 8100 8100
浏览器输入:http://localhost:8100/status ,确认WDA是否运行成功,不多描述参考上面文章。
- 进入到Appium中的WebDriverAgent目录,目录路径如下
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
- 将自己下载并编译后的WebDriverAgent替换Appium原有的WebDriverAgent
进入到Appium/Appium-desktop中的appium-xcuitest-driver目录,目录路径如下
/Applications/Project/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
将自己下载并编译后的WebDriverAgent替换Appium/Appium-desktop原有的WebDriverAgent
=================================================
因为我安装的是appium-desktop软件,所以我会以它为主线来讲解。
下载AppiumDesktop参考下面:
Appium-Server下载地址:https://github.com/appium/appium-desktop/releases(因为我的Xcode是10.0版本,所以下载1.7.1版本的桌面程序,支持appium1.9.1,不然会提示下面的错误)
=================================================
3)打开appium-desktop桌面程序,配置完参数后,启动session
(1)第一次报错:
An unknown server-side error occurred while processing the command. Original error: Xcode version '0.0'. Support for Xcode 0.0 is not supported. Please upgrade to version 7.3 or higher
########sudo xcode-select --switch /Applications/Xcode.app
解决办法有两个种:
①经查询得知是Xcode10.0版本对应appium1.9.0+版本,对应的appium-desktop版本为1.7.1。(我选择这个)
②或者降低Xcode版本,参考:
《将Xcode升级到10.0以上版本,Appium启动报错的问题》
《Appium 今天产品需要,更新到了 Xcode 10,发现 appium 不能正确识别 Xcode 版本了,识别为 0 了,如何解决?》
③其他相关参考资料为:
《appium ios 真机自动化环境搭建》这篇文章引申出下面的两个文章
《Xcode version '0.0'. Support for Xcode 0.0 is not supported.#10810》
《Can't run tests with Xcode 10.0 #229》
(2)再一次运行后,又报错:
Original error: '10.3.3' does not exist in the list of simctl SDKs. Only the following Simulator SDK versions are available on your system: 12.0
经过查询得知,是因为没有10.3版本的SDK,解决文章如下:
《2018-02-07Appium1.3.2-IOS11-Xcode9.2+Mac10.12.6+Python环境搭建过程》最后一段解决此问题。
打开我的Xcode => Preference => Components中没有10.3版本,下载了之后就解决了。
并且我在appium的issue提交了问题并已解决:
(3)第三次运行,还是报错:
Original error: Could not create simulator with name 'appiumTest-iPhone5s', device type id 'iPhone5s' and runtime id '10.3.1'. Reason: 'simctl error running 'create': Invalid device type: iPhone5s'
后经查询得知,是我的参数名称起错了,应该是“udid”,不是“Udid”
解决此问题文章参考:《Appium1.6启动iOS真机》
=====================================
(4)扩展:接下来仔细说一说appium-desktop设置的参数如下:
总体参数解释如下:
再加上自启动WDA的参数配置:
完整参数如下:
{
"platformName": "iOS",
"platformVersion": "10.3.1",
"deviceName": "iPhone5s",
"bundleId": "com.chen.CityMineSafetyOne",
"AutomationName": "XCUITest",
"udid": "42ebab931b6b2d6a140b1a4f5bd55305dbfe2ff0",
"NewCommandTimeout": "3600",
"useNewWDA": true
}
个别参数获取方法:
(一)快速查看连接Mac电脑的IOS设备号udid,有以下几种方法:
①直接输入命令行:
idevice_id -l
②打开iTunes软件
③打开Xcode
(二)bundleId可通过命令获取:
ideviceinstaller -l
至此运行session之后,可以打开检查器了。终于熬出来了!!!
二、参考文章
《Appium 在 MAC 上搭建 appium1.6.3 过程》
《Appium macOS 下的 Appium 安装与配置 Appium Installation & Setup With macOS》