news 2026/5/1 7:16:55

从0开始的ios自动化测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0开始的ios自动化测试

最近由于工作内容调整,需要开始弄ios自动化了。网上信息有点杂乱,这边我就按我的实际情况,顺便记录下来,看是否能帮到有需要的人。

环境准备

安装tidevice

pip3 install -U “tidevice[openssl]”

它的作用是,帮你绕开ios必须用mac的xcode启动wda,直接在windows上使用tidevice启动wda就行了(windows电脑需要先安装iTunes)。

安装facebook-wda

pip3 install -U facebook-wda

设备上安装wda (WebDriverAgent)

这里需要用到mac了,我这边是找公司有mac的同事帮忙装的。具体操作:

用mac下载wda:

$ git clone https://github.com/appium/WebDriverAgent.git

用xcode打开,双击WebDriverAgent中的WebDriverAgent.xcodeproj文件,Xcode添加开发者帐户:Xcode ->Preference,设置Team为你添加的帐户:修改Bundle Identifier为唯一名称。

设置完成后,选择Scheme为WebDriverAgentRunner,选择Destination为你连接的iPhone。

构建项目:Product -> Build ,Product -> Test,此时ios设备上出现相关wda应用,点击iPhone上的设置-> 通用 -> 设备管理 信任开发者APP。

好了,准备工作都做完了,这时候可以用tidevice启动下wda服务试试了。

$ tidevice -u [设备 udid] wdaproxy -B [wda 的 bundle Id] --port 8100

这个设备udid可以用下面的命令查看:

tidevice list

wda的bundle Id可以用下面的命令查看(前提是你的设备装好wda了):

tidevice applist

Demo

完成了环境部署(tidevice + wda + facebook-wda),我们来看看怎么弄个demo试试。

首先:

tidevice -u [设备 udid] wdaproxy -B [wda 的 bundle Id] --port 8100

我们使用tidevice,启动wda服务,然后安装weditor:

pip3 install -U weditor

安装完成后,命令行输入weditor,打开网页查看手机app的元素,手上没有ios测试机,咱们就不附图了。

拿到我们想要的元素后,我们开始写脚本了。

import wda wda.DEBUG = False # default False wda.HTTP_TIMEOUT = 180.0 # default 60.0 seconds wda.DEVICE_WAIT_TIMEOUT = 180.0

首先引库,设置下全局配置( DEBUG设置为 True 时会显示HTTP请求和响应信息 ),然后创建客户端。

c = wda.Client('http://localhost:8100')

注:初始化连接设备时不需要事先使用tidevice命令启动WDA,wda.Client()会自动启动WDA应用。

然后记录下常用的API:

# 启动与停止 c.session().app_activate("com.xxxx.xxx") # 打开app c.session().app_terminate("com.xxxx.xxx") # 关闭app # 点击 s(name="xxxx").tap() 点击元素 # 文本操作 ele = s(text='搜索').get() ele.set_text("NFC") # 输入文本 ele.clear_text() # 清除文本 ele.set_text("\b\b\b\n") # 删除3个字符 ele.set_text("NFC\n") # 输入文本并确认 # 等待 s.implicitly_wait(5) #设置隐式等待 s.set_timeout(10.0) #设置超时等待 s(name="屏幕使用时间").wait(timeout=3.0) # 等待元素出现 s(name="屏幕使用时间").wait_gone(timeout=3.0) # 等待元素消失

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:51:47

第五章:Makefile条件判断 - 智能构建的核心

第五章:Makefile条件判断 - 智能构建的核心 5.1 条件判断有什么用? 一个Makefile适应所有情况:开发环境:调试信息,不优化生产环境:最大优化,无调试Windows/Linux:自动适应有…

作者头像 李华
网站建设 2026/4/16 19:54:06

低代码PHP组件版本冲突如何破局?3个关键步骤让你无缝升级

第一章:低代码PHP组件的版本兼容在构建现代Web应用时,低代码平台常依赖于可复用的PHP组件来加速开发流程。然而,不同PHP版本之间的语法与函数行为差异可能导致组件运行异常。确保组件在多种PHP环境中稳定运行,是保障系统兼容性的关…

作者头像 李华
网站建设 2026/5/1 6:53:39

旋转矩阵与欧拉角转换数学公式与代码详解

下面分三大部分说明: 数学推导与公式(欧拉角 ↔ 四元数)C 实现代码Python 实现代码 为便于说明,统一采用常用的航空/机器人学约定: 欧拉角顺序:Z-Y-X(yaw-pitch-roll)旋转顺序&#…

作者头像 李华
网站建设 2026/5/1 6:53:38

助力在线教学提质增效,“魔果云课”以核心功能直击教师痛点

随着在线教育的普及,一款稳定、高效、易用的教学工具已成为广大教师的普遍需求。近期,一款名为「魔果云课」的软件因其聚焦核心教学场景的设计,受到了不少教育工作者的关注。本文将从实际应用角度,梳理其如何针对线上教学关键环节…

作者头像 李华