使用Appium在iOS上实现自动化

安装 Appium

bash 复制代码
npm install -g appium

检测 Appium 是否安装成功

bash 复制代码
appium --version

安装 Appium Doctor

bash 复制代码
npm install appium-doctor -g

安装 ios 测试驱动

bash 复制代码
appium driver install xcuitest

检测 iOS 环境是否正常

bash 复制代码
appium-doctor --ios

安装 ideviceinstaller

bash 复制代码
brew install ideviceinstaller

查询设备 udid

使用 USB 链接好 iPhone,使用以下命令查询设备 udid

bash 复制代码
idevice_id -l
# 例如,这些输出以下内容:
# 00000030-0018581E1E43402E

安装 WebDriverAgent

WebDriverAgent 是一个用于测试 iOS 应用的开源项目,它提供了一套完整的测试工具,用于测试 iOS 应用,最早由 facebook 开发,目前由appium 社区维护。

下载&签名

打开 WebDriverAgent 仓库下载源码到本地,并进入到 WebDriverAgent 目录下,使用 Xcode 打开 WebDriverAgent.xcodeproj 文件,对项目重新签名。

打开项目,在 Targets -> WebDriverAgentRunner -> General -> Signing -> Team,修改 Bundel Identifier, 解决重名问题,

Team 选择自己或者加入的团队,勾选 Automatically manage signing。

Targets 下的其他几个,如 WebDriverAgetLib, 也执行同样操作。

运行

在 Xcode 中,中间顶部,左侧选择 WebDriverAgentRunner,右侧选择运行的设备,然后点击 Products -> Test。

此时将在手机上安装 WebDriverAgentRunner App,

首次运行会出现以下错误提示:

Unable to launch com.facebook.WebDriverAgentRunner.zacksleo.xctrunner, 如图所示

这是因为私有证书需要在手机上勾选允许,然后进入手机"设置",打开 "通用",找到"VPN与设备管理",最下方找到 "开发者APP" 下面的证书,点开后选择信任 Apple Development:...,弹窗选择信任。

打开刚安装的这个名为 WebDriverAgentRunner 的 App,启动客户端代理,然后在电脑命令行中运行 Appium,启动 Appium 服务。

bash 复制代码
appium

编写测试代码,运行测试用例:

bash 复制代码
node test.js

参考资料

相关推荐
Digitally4 分钟前
解决 iPhone 和 Mac 之间备忘录无法同步的9种方法
macos·ios·iphone
denggun1234519 分钟前
图片上传git时压缩
git·ios·objective-c·iphone·xcode
胎粉仔1 小时前
Swift 初阶 —— Sendable 协议 & data races
开发语言·ios·swift·sendable·并发域·data races
2501_915909061 小时前
深入理解HTTPS和HTTP的区别、工作原理及安全重要性
安全·http·ios·小程序·https·uni-app·iphone
北京耐用通信2 小时前
从‘卡壳’到‘丝滑’:耐达讯自动化PROFIBUS光纤模块如何让RFID读写器实现‘零延迟’物流追踪?”
网络·人工智能·科技·物联网·网络协议·自动化
猪哥帅过吴彦祖2 小时前
Flutter 从入门到精通:状态管理入门 - setState 的局限性与 Provider 的优雅之道
android·flutter·ios
狂团商城小师妹2 小时前
JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
android·java·ios
denggun123453 小时前
ios-AVIF
macos·ios·cocoa
ajassi20003 小时前
开源 Objective-C IOS 应用开发(六)Objective-C 和 C语言
ios·开源·objective-c
caijingshiye6 小时前
九科信息企业自动化智能体:打破知行割裂,让AI真正动手干活
运维·人工智能·自动化