mac搭建基于wda\airtest 的iOS自动化测试环境

在IOS平台进行Airtest测试,需要进行如下部署:

1、本地安装airtest库

打开终端输入命令安装Airtest库及其依赖项:

复制代码
pip install airtest

安装用于连接iOS设备的wda库:

复制代码
pip install -U facebook-wda

2.使用iOS-Tagent 工具来部署 iOS 真机

在当前mac生成ssh密钥,添加代理后生成并配置SSH公钥到GitHub。http://t.csdnimg.cn/2i6JI?spm=1011.2480.3001.8118

克隆iOS-tagent项目至本地

复制代码
git clone https://github.com/AirtestProject/iOS-Tagent.git

3.下载xcode,连接真机,启动iOS-Tagent

配置xcode开发者账号(可找iOS开发获取开发者账号支持:提供apple账号-开发者账号发送邀请-通过邀请)。

打开Xcode,只开发调试不发布app可通过xcode自动生成开发者证书。选择Team为自己的开发者账号,勾选自动生成开发证书

打开Xcode settings添加开发者账号。

这里坑特别多,建议提前把mac、iPhone、xcode都升级至最新系统,由于体型较大临时更新很慢,不更新很容易不匹配。

Xcode15.4以上选择真机运行时,需下载iOS17模拟器,但最坑的是直接根据Xcode运行目标设备中的提示点击"Get"下载总是中断,且无法断点续传,解决方法是官网自行下载iOS_17_Simulator_Runtime

苹果模拟器资源地址

下载完成后

使用命令行按照以下步骤进行安装:

复制代码
sudo xcode-select -s /Applications/Xcode.app //新版本需要sudo权限 xcodebuild -runFirstLaunch xcrun simctl runtime add "~/Downloads/iOS_17.5_Simulator_Runtime.dmg"

执行完成,xcode即可显示真机设备

启动Test,在菜单栏 product -> Clean Build Folder 之后,再 product -> Test 启动。

启动成功后Xcode控制台出现截图地址时,在手机上安装WDA完成。

4.设置代理

安装 Homebrew

复制代码
/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

通过 Homebrew 安装iproxy:

复制代码
brew install libimobiledevice

运行iproxy:

复制代码
iproxy 8100 8100

在浏览器访问 http://127.0.0.1:8100/status

如果显示无法连接,尝试访问:http://localhost:8100/status

如图所示则代表设置成功。

5.下载并打开AirtestIDE,连接设备

数据线连接手机至设备且WDA运行状态,可直接看到设备信息,点击连接。

如果由于版本问题无法显示手机窗口,可通过远程连接:

在Xcode的log窗口看到的ServerURLHere->http://localhost:8100<-ServerURLHere,可以直接用地址 http://localhost:8100 进行连接,在 AirtestIDE 的设备窗口输入地址,点击连接。(注,远程连接需iOS和Mac在同一个局域网下)

可以在编辑窗口开始编辑脚本。(这里的坑是IDE与macOS14.6系统有个兼容bug导致IDE脚本编辑窗黑屏无法输入)

解决方案是脱离IDE编辑器使用pycharm进行脚本编写。

相关推荐
Geek-Chow8 小时前
00 Apple Code Signing, In Depth — A Series
ios
传奇开心果编程20 小时前
【Flutter踩坑排雷】第25课:ScrollController 误用坑|跳转失效、监听泄漏与“控制器未附加”
android·flutter·ios·移动开发·跨平台·dart·声明式ui
90后的晨仔21 小时前
macOS 27 下两个 Xcode 坑:真机 DDI 错配与模拟器 App Translocation
ios
开心猴爷1 天前
iOS 上架 App 流程
后端·ios
奶油话梅糖1 天前
用 iPhone 扫一间房,AI 帮你在浏览器里 1:1 重建它:Wes Bos 的 scan-to-threejs 工作流
人工智能·ios·iphone
高调的涵涵1 天前
café 和 café 不是一个文件名
macos
茶底世界之下1 天前
阴天窗边的柿子:用 Awaking 让暖色成为主角
ios·app·产品
kango2 天前
iOS 远程推送全链路拆解:从 deviceToken 到多账号绑定
ios·app
茶底世界之下2 天前
仙人掌与沙丘的傍晚:用 Awaking 让侧光有了层次
ios·app·产品
茶底世界之下3 天前
蓝调鱼市的一盏暖灯:用 Awaking 把冷海与灯光分开
ios·app·产品