这是一份关于 Xcode 26 及更高版本「录制 UI 自动化」功能的指南,用于通过录制用户交互来创建 UI 测试,内容参考 WWDC 2025-344。
用途与工作流:整体分为三阶段——录制(在模拟器中与应用交互,Xcode 将其捕获为 Swift 测试代码)、回放(借助测试计划跨设备、语言和配置运行)、审查(在测试报告中观看录屏、查看失败截图并分析操作时间线)。
主要能力:录制可捕获按钮/单元格/控件的点击、文本输入、滑动滚动、手势(捏合、旋转)以及硬件按键。录制生成的代码通常较脆弱,指南建议做四项增强:改用 accessibilityIdentifier 而非本地化标签、用 waitForExistence 等待元素、补充断言、使用更短的查询。查询选择应优先标识符、避免 element(boundBy: 0) 这类基于索引的查询,并为动态内容添加标识符。
使用方式:录制时打开 UI 测试文件、把光标置于测试方法内,选择 Debug → Record UI Automation,应用会在模拟器中启动;用测试计划(File → New → File → Test Plan)配置 language、region、userInterfaceStyle、超时等选项。命令行运行示例:xcodebuild test -scheme "MyApp" -testPlan "MyTestPlan" -destination "platform=iOS Simulator,name=iPhone 16" -resultBundlePath /tmp/results.xcresult;也可在 Xcode 中选好计划后按 Cmd+U。启用附件保留可设 systemAttachmentLifetime 与 userAttachmentLifetime 为 keepAlways,并可用 XCTAttachment 添加自定义截图。
适用场景与限制:适合登录、导航、表单校验等 UI 流程测试及 CI 回放。需注意原始录制代码不宜直接用于 CI,不要硬编码坐标,也不要缺少断言;本地通过而 CI 失败时可增大超时、显式等待动画、核对模拟器配置或关闭动画。文中另附故障排查与反模式说明。