# 1. Playwright 的 auto-wait 机制与 Selenium 显式等待相比有何本质改进?为何能显著降低用例 flaky 率? A auto-wait 把"等待可操作"内置到每个动作,等待动作可执行的业务条件并自动重试,显著降低 flaky ✓ 正确答案 B auto-wait 仍需手动等待 C auto-wait 只等待元素存在 D auto-wait 与手动 sleep 等价
# 2. Playwright、Selenium、Cypress 的架构差异(CDP/WebSocket vs WebDriver HTTP vs 进程内注入)与选型依据? A 三者通信方式完全相同 B Playwright 经 CDP/WebSocket、Selenium 经 WebDriver HTTP、Cypress 进程内注入,按跨浏览器与场景需求选型 ✓ 正确答案 C Cypress 支持跨浏览器最广 D Selenium 无跨浏览器能力
# 3. Playwright 的 Trace Viewer、codegen、UI Mode 如何提升用例编写与失败调试效率? A Trace Viewer 无法查看网络 B 三者只能用于调试 C codegen 加速编写、UI Mode 交互调试、Trace Viewer 回放失败轨迹,形成高效闭环 ✓ 正确答案 D codegen 不能生成代码
# 4. Playwright 的 fixture 机制,page/context/browser 的生命周期与作用域(test/worker)如何设计 A browser 是 Test 作用域 B 所有 fixture 都是共享的 C browser 共享引擎、context 隔离状态、page 每测试新建,用 scope 控制生命周期并封装 setup/teardown ✓ 正确答案 D page 跨测试共享
# 5. Playwright 的网络拦截(route/mock)如何实现接口打桩与弱网模拟? A 用 route.fulfill 打桩响应、route.continue/abort 放行阻断、延迟/CDP 模拟弱网 ✓ 正确答案 B route 只能放行请求 C 网络拦截无法 mock 响应 D 弱网只能靠真实环境
# 6. Playwright 的 BrowserContext 如何实现用例级隔离与高并行执行? A 每个 context 独立隔离浏览器状态,轻量 context 支撑用例级并行与高吞吐 ✓ 正确答案 B context 无法并行 C 所有 context 共享状态 D 隔离会降低稳定性
# 7. 自动化用例 flaky(不稳定)治理体系,自动重试、失败隔离、根因分类与趋势看板如何搭建? A 只要自动重试就够了 B flaky 无法治理 C 重试会根治 flaky D 自动重试兜底 + 失败隔离 + 根因分类 + 趋势看板驱动修复,形成闭环治理 ✓ 正确答案
# 8. Playwright 的自动等待与 Web-first 断言? A Web-first 断言失败立即返回 B 动作前自动等待可操作、断言自动等待 Web 状态并重试,消除时序竞态 ✓ 正确答案 C 自动等待需手动 waitFor D 断言不等状态
# 9. Playwright 的并行执行模型,worker 数、进程隔离、全局状态与串行依赖用例如何处理 A worker 是独立进程隔离执行,workers 控制并发,serial 处理串行依赖,全局状态需隔离 ✓ 正确答案 B worker 间共享状态 C 并行与隔离无关 D 所有测试必须串行
# 10. Playwright 的视觉断言 toHaveScreenshot,截图基线管理、像素容差与跨平台差异处理 A 基线版本化 + 像素容差 + 关闭动画/遮罩易变区 + 按平台调整,稳定控制视觉验证 ✓ 正确答案 B 容差越小越好 C 基线无需管理 D 跨平台截图总是相同
# 11. Playwright 的 storageState 与登录态复用,如何把登录过程前置并跨用例共享,同时避免状态污染? A 复用登录态必然污染 B 所有用例共享同一 context 即可 C 登录态无法复用 D 用 storageState 快照复用登录态,每用例从快照创建独立 context 以避免状态污染 ✓ 正确答案
# 12. Cypress 的同源限制与运行模型 trade-off,什么场景下不适合选择 Cypress? A 进程内注入带来同源限制与浏览器局限,跨域/跨浏览器/多标签场景不适合 Cypress ✓ 正确答案 B Cypress 支持跨浏览器最广 C Cypress 无同源限制 D Cypress 能驱动 Safari
# 13. Playwright 的移动端模拟? A 模拟真机系统能力 B 只能模拟桌面 C 用 devices 预设模拟 UA/视口/触摸/DPR,覆盖移动端 Web,但非真机原生能力 ✓ 正确答案 D 无法设置视口
# 14. Playwright 的 CI 与分片? A 用 Docker 固化环境、--shard 分片并行、retries 兜底并把报告与 trace 上传供诊断 ✓ 正确答案 B 分片无法并行 C CI 无需安装浏览器 D trace 只在本地生成
# 15. Playwright 的组件测试与单元测试结合? A 组件测试只测逻辑 B 组件测试与 E2E 等价 C 组件测试在真实浏览器验证渲染与交互,单测测逻辑、组件测组件、E2E 测流程,分层互补 ✓ 正确答案 D 组件测试无法测交互
# 16. Playwright 的网络断言与性能采集,expect(response) 如何校验请求结果,并采集资源耗时辅助性能分析? A 无法断言网络响应 B 用 waitForResponse + expect 校验响应状态与内容,用 resp.time() 采集耗时辅助性能分析 ✓ 正确答案 C 性能指标只能外部采集 D 网络断言不等待
# 17. Playwright 在微前端/iframe 场景的测试,frameLocator 定位与跨应用状态同步的验证要点? A iframe 内元素无法定位 B 所有 iframe 共享状态 C 用 frameLocator 定位各 iframe 元素,并验证"操作 A 后 B 应用状态同步"的跨应用场景 ✓ 正确答案 D 微前端无需测状态同步