了解如何在 xcode 中录制、运行和维护 xcuiautomation 测试。利用测试计划配置,在数十个语言、设备类型和系统条件下重播 xctest ui 测试。使用 xcode 测试报告来查看测试结果,并下载运行情况的截图和视频。我们还将介绍有关通过辅助功能为 app 做好自动化准备以及编写稳定、高质量自动化代码的最佳做法。
此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com
使用 Xcode 实现 UI 自动化:从录制到审查的完整指南
UI 自动化是确保应用质量的重要手段,Xcode 提供了一套完整的工具链,帮助开发者轻松实现应用交互的自动化测试。本文将从 UI 自动化的基本原理出发,详细介绍如何在 Xcode 中录制、运行和维护 XCUIAutomation 测试,并通过测试计划在多配置环境下回放测试,最后查看测试报告和视频录像。
UI 自动化基础
Xcode 提供了两个主要的测试框架:Swift Testing 和 XCTest。当导入 XCTest 时,系统会自动包含 XCUIAutomation 框架,这个框架能够模拟用户操作来自动化运行应用。这两个框架共同构成了完整的应用测试套件。
完整的应用测试通常包含两种类型:
- 单元测试:验证应用逻辑和模型,可在没有用户界面的框架和 Swift 包上运行
- UI 自动化测试:验证用户体验、与 Apple 硬件的集成以及常见工作流程的行为
UI 自动化测试的优势在于它能直观展示应用的外观表现、行为方式以及与操作系统的集成效果。具体应用场景包括:
- 模拟用户操作(点击、滑动和按压)
- 测试辅助技术(如 VoiceOver、语音控制和动态类型)下的用户体验
- 验证应用在所有支持语言和地区的表现
- 测试与 Apple 硬件功能的集成
- 评估应用的启动性能
UI 自动化支持所有 Apple 平台:iOS、iPadOS、macOS、watchOS、tvOS 和 visionOS。同一套自动化脚本甚至可以在多个平台上运行,实现”一次编写,多平台测试”的效果。
为自动化做准备
虽然 UI 自动化可以开箱即用,但为了获得更好的测试质量,建议进行以下准备工作:
添加辅助功能标识符
辅助功能标识符(accessibilityIdentifier)是自动化中唯一识别应用元素的最佳方式。优秀的标识符应具备以下特点:
- 在整个应用中具有唯一性
- 描述性强,能详细说明所属元素
- 保持静态,不随内容变化而改变
在 SwiftUI 中,可以为任何 UI 元素添加 accessibilityIdentifier 修饰符:
1 | LandmarkRow(landmark: landmark) |
在 UIKit 中,可以直接设置 accessibilityIdentifier 属性:
1 | button.accessibilityIdentifier = "addButton" |
审查辅助功能
Xcode 自带的”辅助功能检查器”可以帮助查找、诊断和修复辅助功能问题。该工具可从 Xcode 顶层菜单的”Open Developer Tool”启动,也能通过 Spotlight 打开。检查器会列出应用视图的辅助功能值,其中”Basic”部分的属性对 UI 自动化特别有用。
添加 UI 测试目标
在 Xcode 的项目设置视图中,点击目标列表下方的”+”按钮,选择”UI Testing Bundle”添加新目标。完成后,新的 UI 测试文件夹和模板将添加到项目中,为自动化测试提供基础结构。
录制交互操作
录制 UI 测试的基本流程如下:
- 打开 UI 测试源文件,使用侧边栏的按钮开始 UI 录制
- Xcode 会自动构建并在模拟器中重新启动应用
- 与应用交互时,操作会被实时记录为代码
- 停止录制后检查代码,添加验证逻辑
- 运行测试验证录制是否正确
在录制过程中,Xcode 会为每个操作提供多个 UI 元素定位选项。选择推荐方案:
- 对于包含本地化字符串的视图,优先选用辅助功能标识符
- 对于深度嵌套的视图,选择尽可能简洁的查询
- 对于动态内容,使用通用查询或现有的辅助功能标识符
录制完成后,可以添加验证代码检查预期行为:
1 | let app = XCUIApplication() |
在多配置环境下回放
测试计划是管理多环境测试的强大工具,允许您:
- 包含或排除单个测试
- 设置测试运行的系统配置
- 管理超时、重复、并行化等属性
- 关联特定构建设置
在测试计划的”Configurations”标签页中,可以:
- 设置多语言配置运行应用
- 控制是否在运行期间捕获视频或截图
- 选择保留哪些运行的媒体(失败或全部)
Xcode Cloud 是运行多配置测试的理想平台,它支持:
- 在云端构建应用和运行测试
- 使用相同的测试计划在多种设备上运行
- 查看完整的运行历史和结果
审查视频与结果
Xcode 测试报告提供了丰富的工具来分析和诊断测试结果。主要功能包括:
- 查看失败测试的视频录像和错误描述
- 切换不同配置的测试视频
- 下载视频和截图用于进一步分析
- 在失败时刻查看存在的 UI 元素
- 获取代码建议来定位元素
通过右键点击测试报告中的元素,可以获得如何在自动化代码中定位该元素的建议,这对于快速修复测试失败非常有帮助。
最佳实践与总结
为了构建稳定高效的 UI 自动化测试,建议遵循以下最佳实践:
- 优先使用辅助功能标识符定位元素
- 为关键工作流程添加验证逻辑
- 在多语言和设备配置下运行测试
- 利用测试计划管理复杂的测试场景
- 定期审查测试视频和报告,持续优化测试
UI 自动化、辅助功能、本地化、Xcode Cloud 和测试报告的协同工作,共同提升了应用质量,让全球用户都能获得更好的体验。将这些技术整合为统一的工作流程,将显著提高开发效率和产品质量。
相关视频
了解 Swift Testing
使用 Xcode 测试报告更快修复故障
在 SwiftUI 和 UIKit 中创建易于访问的 App
在 Xcode Cloud 中创建实用的工作流程
对你的 App 进行辅助功能审核
为 Xcode Cloud 创建快速而可靠的测试
SwiftUI 辅助功能:超越基础功能
文档
Improving code assessment by organizing tests into test plans
Performing accessibility testing for your app