# 1. Page Object 模式与 Screenplay 模式的对比,各自的适用场景和演进关系? A Screenplay 以页面为组织单元,POM 以业务行为为组织单元 B Screenplay 比 POM 更简单 C POM 面向页面,Screenplay 面向业务行为,是 POM 的面向行为演进 ✓ 正确答案 D 两者完全等价
# 2. Page Object 模式的核心原则,页面封装、元素定位与断言分离,为什么能降低用例维护成本? A 每个用例都直接写定位器更灵活 B 页面封装、定位与断言分离,把 UI 变更局部化到 Page Object,从而降低维护成本 ✓ 正确答案 C 断言应写在 Page 内部 D POM 与用例维护成本无关
# 3. Page Object 中如何处理组件复用(如 Header/Footer/Navigation)? A 公共组件应抽象为独立组件类,Page 通过组合持有,并基于根元素相对定位实现复用 ✓ 正确答案 B 每个 Page 都应重复封装 Header 的定位器 C 组件不能跨页面复用 D 组件应包含断言逻辑
# 4. 定位器的稳定性 vs 表达力的取舍? A 优先稳定性,用 data-testid/语义 CSS,慎用绝对 XPath 与依赖顺序的定位 ✓ 正确答案 B 绝对 XPath 最有表达力,应优先使用 C 表达力是唯一考量 D 稳定性与表达力总是可兼得
# 5. "测试 ID"如何与开发约定对齐? A 通过命名规范、职责解耦、评审清单与 CI 检查,把测试 ID 固化为测试与开发的契约 ✓ 正确答案 B 测试 ID 应由测试单方面随意命名 C 测试 ID 应承载样式逻辑 D 删除测试 ID 无需同步测试
# 6. UI 自动化的稳定性,隐式/显式等待、动态元素定位(xpath/css 策略)、网络波动下的重试如何设计? A 固定 sleep 越久越稳定 B 网络重试应无限次 C 用显式/自动等待、语义锚点定位,并对可重试的网络波动做有限退避重试 ✓ 正确答案 D 动态元素只能用索引定位
# 7. UI 自动化的数据准备与清理,测试数据工厂、接口造数 vs UI 造数、用例隔离如何保证可重复执行? A 数据准备应优先用 UI 造数 B 用数据工厂统一造数、接口造数优先、用例级隔离与清理,保证可重复执行 ✓ 正确答案 C 数据清理无需考虑 D 用例间共享数据更高效
# 8. UI 自动化的数据驱动与关键字驱动框架对比,各自在维护成本、上手难度与业务可读性上的取舍? A 关键字驱动比数据驱动更需编程 B 数据驱动抽数据、逻辑贴近代码;关键字驱动抽操作、表格化、低代码但规模大时维护复杂 ✓ 正确答案 C 两者完全等价 D 数据驱动业务可读性最好
# 9. 多端 UI 自动化(Web/App/小程序)的统一框架设计,如何抽象公共操作层、差异化处理各端定位与等待? A 各端应各自维护一套完全独立的用例 B 业务用例里应写 if 分端处理 C 各端驱动完全相同 D 抽象公共操作层统一接口,用平台适配器隔离各端定位与等待差异,业务用例一份多端复用 ✓ 正确答案
# 10. UI 自动化的可观测性,失败时如何自动归档截图、DOM 快照、网络日志与视频,如何用这些证据快速定位环境问题 vs 代码问题? A 只需记录失败信息即可 B 证据无需带元数据 C 视频归档没有必要 D 自动归档截图、DOM 快照、网络日志与视频,交叉证据快速区分环境问题与代码问题 ✓ 正确答案
# 11. UI 自动化的执行策略,用例分级(冒烟/回归/全量)、并行执行与分片(shard),流水线中如何平衡执行时间与稳定性? A 并行执行无需隔离 B 所有用例每次提交都跑全量最稳妥 C 分片越均匀越难 D 分级控制反馈粒度、并行与动态分片控制时长,并隔离 flaky 用例以平衡时间与稳定性 ✓ 正确答案
# 12. Page Object 中的异步状态处理,加载态/骨架屏/轮询刷新如何封装为稳定的等待语义,避免用例在常见异步 UI 上不稳定? A 用固定 sleep 等待异步加载最稳定 B 异步 UI 只能 case by case 处理 C 把加载态/骨架屏/轮询封装为"等待业务终态"的语义化等待,避免固定时延 ✓ 正确答案 D 等待越久越稳定
# 13. Page Object 的粒度把握,一个页面对应一个 Page Object 还是按功能区域拆分? A 每个按钮都要拆成独立 Page B 所有页面都必须拆成最小粒度 C 简单页面一个 Page,复杂页面按功能区域拆分,以可维护、可复用、边界清晰为准 ✓ 正确答案 D 页面粒度与可维护性无关
# 14. POM 与 DRY 的边界? A DRY 应不惜代价消灭所有重复 B 完全不复用代码最好 C 所有相似代码都应合并 D POM 封装页面内重复定位与操作,但只复用语义一致且确定重复的逻辑,避免过度抽象 ✓ 正确答案
# 15. UI 自动化与手工测试的分工,什么场景适合自动化(回归/冒烟)、什么场景必须手工(视觉/探索)? A 回归/冒烟等重复稳定场景适合自动化,视觉/探索等主观场景必须手工,两者互补 ✓ 正确答案 B 手工测试只测 bug C 探索性测试最适合自动化 D 自动化应完全替代手工测试
# 16. UI 自动化 vs 接口自动化,投入产出? A UI 自动化投入产出比更高 B 接口自动化投入产出比高、稳定,UI 自动化聚焦核心端到端流程,接口为主 UI 为辅 ✓ 正确答案 C 二者投入产出完全相等 D 接口自动化覆盖不到后端逻辑
# 17. UI 自动化的断言设计,行为断言(状态/文本)与视觉断言(截图)如何按场景选择,避免断言过弱或过脆? A 断言元素存在即可,最稳定 B 视觉断言应全图精确匹配 C 断言越细越好 D 默认行为断言(业务结果),视觉断言按需,并设置容差,避免过弱或过脆 ✓ 正确答案
# 18. UI 自动化中的系统级交互处理,文件上传下载、剪贴板、系统弹窗、多窗口的封装与稳定性策略? A 文件上传应依赖系统文件对话框 B 系统弹窗无法自动化 C 多窗口无需管理 D 用 input 送文件路径、预注册弹窗监听、等待下载完成信号,统一封装系统级交互 ✓ 正确答案
# 19. Page Object 与 Shadow DOM/Web Component 的适配,如何定位自定义元素内部节点并保持用例稳定? A open 与 closed shadow 都可直接外部定位 B Shadow DOM 元素无法定位 C 用自动 pierce/JS 穿透 shadow root,把穿透细节封装在 Page 内并用稳定属性锚定,保持稳定 ✓ 正确答案 D 内部节点只能用绝对路径