python + appium搭建iOS自动测试环境
python 环境
- 安装Python包或者anaconda都可以
appium-deskop (Appium Server GUI)
通过UI操作方式开启Appium Server的工具,mac选择dmg下载安装
- 下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.22.0
appium-inspector
iOS元素定位工具,mac选择dmg下载安装
- 下载地址:https://github.com/appium/appium-inspector/releases
appium-doctor
检查appium自动测试环境的工具
- 命令行安装
npm install -g appium-doctor
完成以上步骤之后进行初步环境检查
包括node.js、Carthage、idb等
命令:
-
appium-doctor --ios -
检查结果打钩✅的说明没问题,有打叉❌的说明没有安装或环境变量没有配置,根据提示进行安装后再次检查,直到 Everything looks good
-

WebDriverAgent 配置修改
- 在已下载安装好的appium-desktop的目录下找到WebDriverAgent,涉及修改,避免改错,可以把appium-webdriveragent目录整体备份
- 打开安装目录下的WebDriverAgent.xcodeproj,默认会用xcode打开
- 需要修改2个地方
-
添加账户,使用个人的appleID即可,登录成功之后选择已登录的账户

-
分别修改【WebDriverAgentLib】和【WebDriverAgentRunner】的Bundle Identifier:选择Build Setting–>Bundle Identifier
- 在原有的签名字符上添加部分字符即可,如com.facebook.WebDriverAgentRunner9527
- 回到Signing & Capability选项,验证修改后的签名可用
将签名后的WebDriverAgent 安装到真机
完成以上步骤,在xcode的WebDriverAgent.xcodeproj 中选择用数据线连接的真机设备,Command+u执行安装WebDriverAgent到手机
- 等待安装成功手机端会出现一个WebDriverAgent的APP

- 如果build 成功但无法安装的,需要在手机端允许来自这个apple id的应用程序安装:Setting->General->VPN&Device Management中设置为允许
appium-inspector 元素定位工具使用
完成以上步骤,即可在真机上启动APP进行元素定位
-
开启appium的服务,在mac上打开已安装的appium-deskop,Host 默认本地,端口默认4723,端口冲突可修改
-
开启appium-inspector,填写已开启的端口,填写Remote Path,填写设备的信息,然后Start Session,启动APP
-

-
开启成功之后,就可以开始进行元素定位操作了
python 驱动WebDriverAgent 进行自动测试
-
安装Appium-Python-Client,python的appium三方库,需要python 3.7+
-
pip install Appium-Python-Client -
创建驱动,驱动设备打开APP,旧的desired_caps已弃用,改为AppiumOptions加载设备信息
from appium import webdriver
option = AppiumOptions()
desired_caps = dict()
desired_caps["platformName"] = "iOS"
desired_caps["platformVersion"] = "15.2"
desired_caps["deviceName"] = "iPhone XR"
desired_caps["app"] = "test.xxx.xxx"
#设备的udid
desired_caps["udid"] = "xxx.xxx.xx"
option.load_capabilities(desired_caps)
driver=webdriver.Remote(X_ios.remote_addr, options=option)