iOS UI Testing Bundle(UI测试)

项目需要在每次iOS版本更新后测试是否可以正常使用,需要进行UI测试,确定App可以在最新版本上正常使用。

这里根据领导提醒,我想到了苹果自带的XCTest。下面是使用流程,大概分三步。 1.创建 UI Testing Bundle 2.录制App操作. 3.根据需要对录制的操作代码进行修改。 4.测试自己编写的测试用例是否可以可以编译通过。

创建 UI Testing Bundle

如果是新建项目

勾选 Inclide Tests(我使用的是Xcode 15.2版本)按钮。

创建成功之后会在项目中看到 ****Tests 和 ****UITests两个TARGETS,其中****UITests就是我们要使用的

记得把项目文件和测试文件的最小版本号,调整成你项目想要的版本。

如果是旧项目,且项目中没有****UITests文件。

首先修改配置文件

TARGETS->Build Setting->搜索test,找到 Enable Testability,设置releasee 为YES,这样可以在releasee进行录制。

开始创建测试文件。

到这里就测试文件就创建完成了。

录制App操作

点击测试方法的某一行 下方的录制按钮就会亮起。

然后点击录制按钮Xcode就会连接设备启动App,App启动之后就可以对App进行操作,然后在你选择的测试方法内部就会出现你操作的测试用例代码,如下,图中的报错,转成中文或者使用转义字符就可消除。

根据需要对录制的操作代码进行修改

处理录制代码遇到的一些小问题。 录制代码并不是每次都能精准定位到你所点击的按钮或者模块。需要重新启动录制,多次尝试, 例如关于点击"MSL资料库",多次录制,出现两种结果。

css 复制代码
[[[app.scrollViews.otherElements containingType:XCUIElementTypeStaticText identifier:@"MSL知识库"] childrenMatchingType:XCUIElementTypeButton].element tap];

    
[app.scrollViews.otherElements.buttons[@"MSL资料库"] tap];

经过测试第一种才能正常实现点击。

例如点击tableView Cell

可能会出现上面的录制代码。可能我们只是想要的是点击tableView中的第一个Cell. 那么可以点击上图中的下拉按钮,然后选择cells,

然后把代码修改成下面的样式(只可在停止录制的情况下修改代码),即可使用tableView 第一个 cell点击。

ini 复制代码
[[app.scrollViews.otherElements.tables.cells elementBoundByIndex:0] tap];

如果跳转到某一个页面后,页面中有异步加载,可以页面跳转后,添加sleep(3);方法等待页面的异步数据处理完毕,再进行UI操作。

测试自己编写的测试用例是否可以可以编译通过。

编写完自己的测试用例后,点击测试方法前面的按钮

或者点击这里的测试按钮就可开始进行测试。

如果测试通过XCode会弹窗提示 Test Succeeded,并且测试方法会被标记为绿色通过。

相关推荐
Darling噜啦啦8 小时前
别再"盲盒式"调 Agent 了!LangSmith 全链路观测 + RAG 量化评估实战(LangGraph × Milvus)
agent·测试
匠测AI说1 天前
AI for Testing 提效实战 · 执行自动化(四):脚本坏了让 AI 自愈——它说修好了,你凭什么信
人工智能·测试
冬奇Lab2 天前
LLM 驱动的自动化测试系列(14):落地与工程化——为什么测试场景的 Token 账单,反而是这个系列里最便宜的
人工智能·测试
技术管理手帐2 天前
车联APP UI自动化框架的工程化实践
测试
KKWOO3 天前
回放报告满屏差异?时间戳、签名去噪实战
测试
PegasusYu3 天前
Node.js使用nedb轻量级数据库测试脚本
数据库·electron·node.js·脚本·测试·轻量级·nedb
狂师3 天前
AI时代我们要如何玩抓包测试:Reqable + AI Agent
前端·程序员·测试
冬奇Lab3 天前
LLM 驱动的自动化测试系列(13):Flaky Test 不是重跑几次就能解决的分类问题
人工智能·测试
AI测试布道师3 天前
CodexQA Code Wiki:让一个陌生仓库,先回答“从哪读起”
aigc·测试
匠测AI说3 天前
AI for Testing 提效实战 · 执行自动化(三):把 AI 接进 CI——红灯一亮,AI 已把根因贴在 PR 评论区
人工智能·测试