news 2026/9/7 9:06:30

从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/9/7 20:10:39

续约上港!张琳芃 400 万冲第 12 冠

当转会传闻在球迷社群中发酵时,张琳芃的续约决定已悄然落地。一年合约,年薪锁定在400万区间,比传闻中申花的报价还略高一线。这不是一次简单的续约,而是这位手握11枚中超冠军戒指的老将,对职业生涯终章的精心布局。申花…

作者头像 李华
网站建设 2026/9/7 4:52:33

2023A卷,区块链文件转储系统

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:华为OD面试 文章目录 一、🍀前言 1.1 ☘️题目详情 1.2 ☘️参考解题答案 一、🍀前言 2023A卷,区块链文件转储系统。 1.1 ☘️题目详情 题目: 区…

作者头像 李华
网站建设 2026/9/7 12:15:45

动态图表自由切换,R Shiny多输入控件协同设计全解析

第一章:R Shiny 的多模态图表交互控件在构建数据驱动的 Web 应用时,R Shiny 提供了强大的能力来实现动态、可交互的可视化界面。通过整合多种输入控件与图形输出,开发者可以创建支持多模态交互的仪表板,使用户能够实时探索复杂数据…

作者头像 李华
网站建设 2026/9/7 8:28:08

基于单片机的视力保护器设计

一、系统设计背景与总体架构 随着电子设备普及,青少年近视率逐年攀升,长时间近距离用眼、不良光照环境是主要诱因。传统视力保护手段依赖人工提醒,缺乏实时性与准确性。基于单片机的视力保护器,能自动监测用眼环境并及时干预&…

作者头像 李华
网站建设 2026/9/7 16:56:31

WebSocket 协议详解:ws 和 wss 的区别与应用

WebSocket 协议详解:ws 和 wss 的区别与应用 WebSocket 是一种全双工通信协议,允许客户端和服务器之间建立持久的双向通信连接。它是 HTML5 标准的一部分,旨在解决传统 HTTP 协议在实时通信中的局限性。本文将详细介绍 WebSocket 的工作原理…

作者头像 李华
网站建设 2026/9/7 2:14:14

【Matlab】基于图像处理的苹果质量检测分级系统

苹果质量检测分级系统可以利用图像处理技术来实现。下面是一个简单的基于MATLAB的示例代码,用于检测苹果的质量并对其进行分级。 % 读取苹果图像 appleImage = imread(apple.jpg);% 转换为灰度图像 grayImage = rgb2gray(appleImage);% 对图像进行平滑处理,减少噪音 smoothe…

作者头像 李华