SuperAPI AI 工具集

performance-testing

测试与质量

查看项目

更新于 10-15 10:01

技能介绍

用途

本技能用于在 Playwright 测试中测量并强制校验网页性能标准,结合 Lighthouse 审计与 Core Web Vitals。适用于测量页面加载时间、Core Web Vitals、Lighthouse 审计等场景。

主要能力

  • Lighthouse 集成:通过 playwright-lighthouse 的 playAudit 在 Playwright 测试中运行 Lighthouse 审计,可读取 performance、accessibility、best-practices、seo 等类别的评分,并通过 thresholds 设置性能预算,未达标时测试失败。
  • 移动端与桌面端配置:支持通过 config 指定 formFactor 为 mobile 或 desktop,并自定义 throttling(rttMs、throughputKbps、cpuSlowdownMultiplier)与 screenEmulation(mobile、width、height、deviceScaleFactor)。
  • Core Web Vitals 测量:可通过原生 PerformanceObserver 采集 LCP、CLS 等指标并断言阈值(如 LCP < 2500ms、CLS < 0.1);也可注入 web-vitals 库采集 LCP、FID、CLS、FCP、TTFB。
  • Performance Timing API:读取 Navigation Timing(dns、tcp、ttfb、download、domInteractive、domComplete、loadComplete)并断言;读取 Resource Timing,筛选慢资源(duration > 1000)与大资源(size > 100000)。
  • 性能预算:可定义 TTFB、FCP、LCP、TTI、FID、CLS、总大小、JS/CSS/图片大小、请求数等预算,并在测试中校验资源总量、JS、CSS、图片与请求数。
  • 网络与 CPU 限流:通过 CDP 模拟慢 3G(downloadThroughput、uploadThroughput、latency)与 CPU 降速(Emulation.setCPUThrottlingRate)。
  • 报告与历史:生成 Lighthouse HTML 报告与 JSON,并可将指标追加写入 performance-history.json 追踪变化。
  • CI 集成:提供 GitHub Actions 工作流示例,安装依赖、安装 Playwright、启动应用、运行 --grep @performance 测试并上传 Lighthouse 报告。

使用方式

  1. 安装依赖:npm install -D playwright-lighthouse lighthouse
  2. 在 Playwright 测试中导入 playAudit,访问页面后调用 playAudit({ page, thresholds: { performance: 90, accessibility: 90, 'best-practices': 90, seo: 90 } })。
  3. 可通过 config.settings 切换移动端/桌面端并调整限流参数。
  4. 使用 page.evaluate 结合 PerformanceObserver、web-vitals 库或 Navigation/Resource Timing API 获取指标并断言。
  5. 将报告写入文件,或追加到历史指标文件。

适用场景

  • 需要在 Playwright 测试套件中持续校验页面性能预算。
  • 需要测量并断言 Core Web Vitals(LCP、CLS、FID、FCP、TTFB)。
  • 需要模拟移动端、慢速网络或低性能 CPU 下的表现。
  • 需要在 CI 中运行性能测试并归档 Lighthouse 报告。

限制

  • 需在支持 Chrome 调试端口(如 port: 9222)的环境中运行 Lighthouse 审计。
  • 代码示例中使用固定等待(如 waitForTimeout(3000)),实际稳定性依赖运行环境。
  • 部分指标(如 FID)需页面交互触发,示例通过点击 body 实现。
  • 平台兼容性、收费情况、价格等资料暂未提供。