Playwright 与现代自动化框架

共 17 题
#

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 微前端无需测状态同步