要求:
- 系统版本IOS10以上
- Xcode8+
- AppleID
- 包签名
以下以MAC IOS10.12.6 为例:
一、准备python+包依赖环境
步骤 | 安装目标 | 安装方法 | 下载地址 | 备注 |
1 | Python | 终端检查python是否已安装(默认已安装) 若没有下载安装,默认安装即可
| https://www.python.org/downloads/
| 检查方法:终端输入python可看到版本 选择python2 |
2 | xcode | appstore下载安装 |
| 系统默认自带,版本需xcode8+ |
3 | node | 文件安装; 终端命令安装:brew install node | 推荐使用文件安装 | |
4 | brew | 终端检查brew是否已安装(默认已安装) 若无,终端命令安装: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
| 检查方法:终端输入brew可看到版本
|
5 | libimobiledevice | 终端命令安装: brew install libimobiledevice --HEAD |
| 注意安装提示,需无错误 |
6 | carthage | 终端命令安装: brew install carthage |
|
|
7 | ideviceinstaller | 终端命令安装: brew install ideviceinstaller |
|
|
8 | ios-deploy | 终端命令安装: npm install ios-deploy |
|
|
9 | xcpretty | 终端命令安装: gem install xcpretty |
|
|
环境检查:
- 终端输入python可看到python版本信息
- 终端输入brew list可看到目标包名
二、准备appium环境
步骤 | 安装目标 | 安装方法 | 下载地址 | 备注 |
1 | appium | 文件安装: 终端命令行安装: npm install appium | 文件安装的为desktop版本 命令行安装为软件包版本 |
环境检查:
- 终端命令行输入appium-doctor显示如下,除java环境与Android环境外无提示错误,既环境准备完成(只执行IOS自动化)。
三、准备webdriveragent环境
- 下载项目:git clone https://github.com/facebook/WebDriverAgent
- 进入到步骤1的WebDriverAgent的文件夹,终端命令行执行sh ./Scripts/bootstrap.sh -d
再次运行sh ./Scripts/bootstrap.sh -d 无报错,说明初始化脚本成功
- appium桌面版进入到
/Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/WebDriverAgent目录,使用xcode打开WebDriverAgent.xcodeproj
Appium软件包版本进入到
/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent目录,使用xcode打开WebDriverAgent.xcodeproj
- 将WebDriverAgent打上签名(可寻找IOS开发人员协助)
- 连接IOS手机,可将WebDriverAgent.app安装到手机,说明环境准备成功
排错:
- 文件权限,可通过sudo chmod -R 777修改
- 软件包安装错误,先彻底卸载,再重新安装,brew install package,brew link package
- 环境变量问题,vi .bash_profile,source .bash_profile
自动化测试IOS APP Demo
准备阶段:
A.启动appium
B.连接IOS真机
UDID可通过iTunes查看,bundleID可找开发人员提供
编写执行:
import time
from appium import webdriver
desired_caps = {}
desired_caps['udid'] = '55c3cccc58bfa85bd680813da6c925fbc37c49d4'
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '10.2'
desired_caps['deviceName'] = '55c3cccc58bfa85bd680813da6c925fbc37c49d4'
desired_caps['bundleId'] = 'com.cmrh.MSP'
driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
time.sleep(10)
driver.quit()