# 1. Maestro 框架的设计理念,声明式 YAML 测试流、自动等待、跨平台一致性相比 Appium 的优势与局限? A Maestro 不支持 iOS 与 Android 跨平台 B Maestro 无法自动等待,需手动 sleep C Maestro 与 Appium 编程能力完全一致 D Maestro 用声明式 YAML 描述流,自动等待元素,跨平台一致,但复杂断言与自定义逻辑较弱 ✓ 正确答案
# 2. Appium 的 Desired Capabilities 与 W3C WebDriver 协议演进,新协议下的兼容性注意事项 A JSONWP 与 W3C 协议完全兼容,无需区分 B 所有 capability 都无需 `appium:` 前缀 C W3C 协议已废弃,Appium 仍用 JSONWP D 新协议下需区分标准项与 `appium:` 扩展项,避免混用新旧格式导致启动失败 ✓ 正确答案
# 3. Appium 框架的核心架构与定位策略,iOS/Android 跨平台的实现原理? A iOS 与 Android 使用同一个底层自动化框架 B XPath 在 iOS 与 Android 上定位能力完全一致 C Appium 通过 Server 协调各平台 driver(XCUITest/UIAutomator2),用统一 API 抽象并依赖可移植定位符 ✓ 正确答案 D 跨平台无需关心定位差异
# 4. Detox 与 Appium 的对比,各自在 React Native 应用测试中的适用场景? A Detox 与 Appium 同为黑盒测试 B Detox 比 Appium 更通用 C Appium 无法测试 RN 应用 D Detox 是 RN 灰盒同步框架,稳定快但仅限 RN;Appium 是通用黑盒,跨栈但 RN 下易 flaky ✓ 正确答案
# 5. Espresso 高级用法,RecyclerView 测试(RecyclerViewActions)、Jetpack Compose 测试(ComposeTestRule)和自定义 ViewAction 的设计模式? A 自定义 ViewAction 无需约束目标视图 B RecyclerView 测试必须手动滚动定位子项 C Compose 测试无法用语义节点定位 D 用 RecyclerViewActions 操作列表项、ComposeTestRule 测 Compose、自定义 ViewAction 实现单一职责操作 ✓ 正确答案
# 6. XCUITest 的核心模式,XCUIElement 查询与匹配策略、异步等待(expectation)、Accessibility Identifier 的最佳实践? A 用硬编码 sleep 等待元素加载 B 用稳定 accessibility identifier 定位,配合 predicate 异步等待与精确匹配 ✓ 正确答案 C 查询无需考虑唯一性,可随意匹配 D 异步等待会降低稳定性
# 7. 云设备农场(Cloud Device Farm)的选型与使用,BrowserStack/Firebase Test Lab/AWS Device Farm 的设备覆盖、并行能力和成本模型对比? A BrowserStack 与 Firebase Test Lab 能力完全相同 B BrowserStack 覆盖广且支持实时交互,Firebase 对 Android 友好,AWS 适合 AWS 生态,按分钟计费选型 ✓ 正确答案 C 云真机成本与并行无关 D 云真机只支持 Android
# 8. 移动端自动化中的系统弹窗与权限处理,定位权限、通知、更新弹窗的稳定绕过策略 A 每次弹窗都用 UI 自动点击即可保证稳定 B 弹窗处理应嵌入每个业务用例 C 通过 adb 预授权、测试构建关闭更新/广告、封装统一弹窗处理来消除干扰 ✓ 正确答案 D 更新弹窗无法在测试中绕过
# 9. 混合应用(Hybrid/WebView)的自动化测试,native 与 web 上下文切换与元素定位策略 A native 与 web 元素用同一套定位符定位 B 需通过 getContextHandles/switchTo 在 NATIVE_APP 与 WEBVIEW 间切换,并等待 WebView 加载后再定位 ✓ 正确答案 C WebView 内元素无法用 WebDriver 定位 D 上下文切换无需等待页面加载
# 10. 移动端深链自动化,如何构造 Deep Link 触发页面跳转并验证路由参数与登录态处理,跨 App 唤起如何自动化? A 深链触发后无需验证登录态 B 深链不含参数,无需验证 C 跨 App 唤起无法自动化 D 用 adb/XCUITest 触发 scheme/Universal Link,验证路由参数、登录态拦截回跳与跨 App 唤起兜底 ✓ 正确答案
# 11. 手势与多点触控自动化,滑动、缩放、长按与抽屉等复杂手势如何编写稳定用例,真机与模拟器差异如何处理? A 基于元素坐标计算手势起止点,用框架手势 API,并注意真机/模拟器灵敏度差异 ✓ 正确答案 B 模拟器与真机手势行为完全一致 C 缩放手势只需单指 D 用硬编码屏幕坐标触发手势最稳定
# 12. 移动端自动化测试的选型考量,Appium/Detox/Espresso/XCUITest 的覆盖范围和维护成本? A Appium 维护成本最低 B Espresso 可测 iOS C Appium 覆盖最广但维护重,Espresso/XCUITest 平台专注维护轻,Detox 最适合 RN,按团队与技术栈选型 ✓ 正确答案 D Detox 可测所有混合应用
# 13. 移动端视觉回归测试(Visual Testing),基于截图对比(Applitools/Percy)和基于布局属性断言的方案对比?如何处理不同分辨率和字体渲染差异? A 截图对比用忽略区域/容差/多基线处理环境差异,布局属性断言按相对关系校验,两者可结合 ✓ 正确答案 B 截图对比与布局属性断言能力相同 C 截图对比在不同分辨率下不会误报 D 布局属性断言能发现所有视觉变化
# 14. iOS/Android 的自动化差异,XCUITest/UIAutomator? A XCUITest 基于 accessibility 树、UIAutomator2 用 resource-id/text,定位与系统交互差异明显 ✓ 正确答案 B 一套测试脚本可完全无缝在 iOS 与 Android 运行 C XCUITest 与 UIAutomator2 定位方式完全相同 D Android 无权限弹窗
# 15. 移动端元素定位,ID、XPath 与可访问性? A 优先用 ID/accessibility 唯一定位,XPath 灵活但脆弱,作为兜底 ✓ 正确答案 B 文本定位永不变化 C 所有元素都能用 ID 定位 D XPath 定位最稳定,应优先使用
# 16. 移动端自动化的稳定性,等待与重试? A 硬编码 sleep 最可靠 B 隐式等待即可满足所有场景 C 用显式等待(WebDriverWait + 条件)替代固定 sleep,配合有限重试提升稳定性 ✓ 正确答案 D 重试次数越多越好
# 17. 移动端自动化与 CI 的集成? A 集成后无需关心失败诊断 B 自动化只需在本地跑,无需 CI C CI 无法管理真机设备 D CI 中触发自动化、动态管理设备、生成报告、失败告警并将关键用例作为发版门禁 ✓ 正确答案
# 18. 移动端自动化与云真机平台的结合? A 用云真机规模化执行兼容矩阵与并行回归,本地做核心用例与专项,按成本控制规模 ✓ 正确答案 B 云真机无法执行 Appium C 云真机可完全替代本地真机 D 云真机与本地性能完全一致
# 19. 移动端自动化的并行执行,多设备并发、设备池管理与用例分配如何设计,资源冲突如何避免? A 所有用例可共享同一账号并发 B 并行执行无需设备池管理 C 用设备池动态分配,端口/账号/网络隔离,用例独立初始化避免资源冲突 ✓ 正确答案 D 同一账号并发登录无冲突