用途
XCUITest 技能用于为 iOS/iPadOS 应用生成基于 Swift 的 XCUITest UI 自动化测试。XCUITest 是 Apple 原生的测试框架,适合构建可靠、快速的 UI 自动化。该技能以资深 iOS QA 工程师的视角,提供从测试结构到执行方式的完整指导。
主要能力
- 执行目标选择:根据需求判断在本地模拟器还是云端设备农场运行。提到 cloud、TestMu、LambdaTest、device farm 时使用 TestMu AI 云(上传 IPA 与测试运行器);提到 simulator、local、Xcode 时使用本地(Xcode Test Navigator 或 xcodebuild);默认使用本地模拟器。
- 基础测试模式:提供 XCTestCase 结构示例,包括 setUpWithError、continueAfterFailure、app.launch(),以及登录成功与失败等测试用例写法。
- 元素查询:支持通过 accessibility identifier(推荐)、label 文本、NSPredicate 谓词、索引以及存在性检查来定位元素。
- 交互动作:支持 tap、doubleTap、长按、typeText、上下左右滑动、捏合缩放、旋转等操作。
- 断言:支持 exists、isHittable、isEnabled、label 与 value 相等、waitForExistence 等断言。
- 系统弹窗处理:通过 addUIInterruptionMonitor 自动处理权限对话框。
- Page Object 模式:提供协议与页面类示例,将元素与操作封装,提升可维护性。
- 反模式提示:对比 sleep 与 waitForExistence、无等待查询与先等待、硬编码坐标与 accessibility identifier、巨型测试方法与小型聚焦测试方法,并说明原因。
- TestMu AI 云执行:提供从 Xcode 生成 .ipa、上传应用与测试运行器、在真实设备上执行测试的 curl 命令示例。
- 快速参考:涵盖从 Xcode 运行、CLI 运行、运行特定测试、截图、附件、启动参数与启动环境变量等常用任务。
使用方式
在本地,可通过 Xcode 的 ⌘U 或 Product → Test 运行,也可使用 xcodebuild 命令,例如:
xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 16'
运行特定测试:
xcodebuild test -only-testing:MyAppUITests/LoginTests/testLogin
在云端,需先从 Xcode 生成 .ipa(Product → Archive → Distribute → Ad Hoc),然后上传应用与测试运行器,再执行测试。相关命令示例:
curl -u "$LT_USERNAME:$LT_ACCESS_KEY" \
-X POST "https://manual-api.lambdatest.com/app/upload/realDevice" \
-F "appFile=@MyApp.ipa" -F "type=ios"
curl -u "$LT_USERNAME:$LT_ACCESS_KEY" \
-X POST "https://manual-api.lambdatest.com/app/upload/realDevice" \
-F "appFile=@MyAppUITests-Runner.ipa" -F "type=ios"
curl -u "$LT_USERNAME:$LT_ACCESS_KEY" \
-X POST "https://mobile-api.lambdatest.com/framework/v1/xcui/build" \
-H "Content-Type: application/json" \
-d '{
"app": "lt://APP123",
"testSuite": "lt://TEST456",
"device": ["iPhone 16-18", "iPhone 15 Pro-17"],
"build": "XCUITest Cloud Build",
"video": true, "deviceLog": true
}'
适用场景
- 为 iOS/iPadOS 应用编写 UI 自动化测试。
- 在本地模拟器上快速验证测试。
- 在 TestMu AI 云的真实设备上执行测试。
- 需要处理系统权限弹窗、使用 Page Object 模式组织测试代码的场景。
- 需要集成到 CI/CD 流程的测试(进阶模式、调试指南与最佳实践见 reference/playbook.md)。
限制
资料未提供该技能的具体安装方式、收费与价格信息、支持的具体平台版本范围、测试执行效果保证以及除上述内容外的其他功能。部分细节(如 CI/CD 集成的具体步骤)需参考 reference/playbook.md,资料中未展开。