首页/开发/软件测试速查/Playwright 网络拦截与桩数据
自动化测试66 条

Playwright 网络拦截与桩数据

用 page.route 拦截并改写请求:返回桩数据、修改响应、模拟 500/超时或限流,用于前端边界验证;HAR 文件也可作为网络记录的固定回放源。

软件测试速查开发更新于 2026-10-13

网络拦截与桩数据是什么

用 page.route 拦截并改写请求:返回桩数据、修改响应、模拟 500 或超时与限流,用于前端边界验证;HAR 文件也可作为网络记录的固定回放源。网络层拦截让前端测试不依赖后端进度,前后端并行开发时特别有用;但桩数据始终要与真实契约保持对齐。

基本信息

核心接口page.route 注册处理器,route.fulfill / route.continue / route.abort 决定去向
匹配方式URL 模式(glob 或正则),可限定请求方法与资源类型
模拟能力桩数据、修改响应、状态码与延迟、中断请求
扩展HAR 回放(routeFromHAR)把真实网络记录固化为回放源
定位验证前端边界分支的工具,不替代后端契约测试

返回桩数据

返回桩数据
await page.route('**/api/users', async route => {
  // 返回固定桩数据
  await route.fulfill({
    status: 200,
    contentType: 'application/json',
    body: JSON.stringify([{ id: 1, name: 'alice' }]),
  });
});
// 场景二:模拟服务端错误
// await route.fulfill({ status: 500 });

典型使用场景

  • 前端边界:验证空结果、错误码与超时下的界面表现。
  • 并行开发:接口未完成时用桩数据推进页面开发与用例。
  • 稳定性:隔离第三方接口抖动,回归结果不受外部影响。
  • 加载状态:人为延迟某接口,验证加载中与超时处理。
  • HAR 回放:把一次真实会话固化为回放源,复现线上问题。
  • 限流演练:模拟 429 与间歇失败,验证重试与提示。

route 动作怎么选

动作用途典型场景
fulfill直接返回自造响应桩数据与错误模拟
continue放行或改写后转发调整请求头与参数
abort中断请求模拟断网与取消操作
桩数据覆盖成功、空结果、错误与超时几类分支;前后端并行开发时尤其有用。
断言要落在界面行为上:桩数据只是手段,用户可见的结果才是判定对象。
拦截规则按 URL 与资源类型收窄:全量通配会连静态资源一起替换,页面异常难排查。
routeFromHAR 提供未命中策略(abort 或 fallback),按用例需要显式选择,避免测试悄悄穿透到真实网络。

易错点

  • 拦截规则过宽(通配全部请求),静态资源被连带替换导致页面异常
  • 只在桩环境验证通过,未与真实后端做契约核对
  • 桩数据与接口文档脱节,后端改字段后测试仍然假通过
  • 忘记清理路由,同一测试文件中后续用例继续吃到桩数据
  • 模拟错误只测状态码,未验证错误体结构与前端提示逻辑

数据来源与参考

  • Playwright 官方文档:Mock APIs 与 Advanced routing(playwright.dev)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌