SuperAPI AI 工具集

e2e-testing

测试与质量

查看项目

更新于 10-15 10:36

技能介绍

用途

该技能面向使用 Playwright 构建端到端(E2E)测试的场景,目标是帮助编写稳定、快速且可维护的测试套件。内容以模式与代码示例形式给出,覆盖测试组织、页面对象、配置、CI/CD、产物管理与不稳定测试治理。

主要能力

测试文件组织

给出推荐的目录结构,将测试按领域划分:

tests/
├── e2e/
│   ├── auth/
│   │   ├── login.spec.ts
│   │   ├── logout.spec.ts
│   │   └── register.spec.ts
│   ├── features/
│   │   ├── browse.spec.ts
│   │   ├── search.spec.ts
│   │   └── create.spec.ts
│   └── api/
│       └── endpoints.spec.ts
├── fixtures/
│   ├── auth.ts
│   └── data.ts
└── playwright.config.ts

Page Object Model(POM)

提供页面对象类示例,封装定位器与页面操作,例如 ItemsPage 类包含 searchInput、itemCards、createButton 等定位器,以及 goto()、search()、getItemCount() 等方法。

测试结构

展示使用 test.describe、test.beforeEach 组织测试,结合 expect 断言、截图等操作。

Playwright 配置

给出 defineConfig 示例,包含:

  • testDir、fullyParallel、forbidOnly
  • CI 环境下的 retries 与 workers
  • 多种 reporter(html、junit、json)
  • use 中的 baseURL、trace、screenshot、video、超时设置
  • 多浏览器项目(chromium、firefox、webkit、mobile-chrome)
  • webServer 配置

不稳定(Flaky)测试策略

  • 隔离:使用 test.fixme(true, ...) 或 test.skip(process.env.CI, ...)
  • 识别:npx playwright test tests/search.spec.ts --repeat-each=10、--retries=3
  • 常见原因与修复:竞态条件(使用自动等待定位器)、网络时序(等待特定响应而非固定超时)、动画时序(等待可见与网络空闲后再点击)

产物管理

  • 截图:整页截图、元素截图
  • 追踪:browser.startTracing / stopTracing
  • 视频:配置 video: 'retain-on-failure' 与 videosPath

CI/CD 集成

提供 GitHub Actions 工作流示例,包含检出、Node 设置、npm ci、npx playwright install --with-deps、运行测试、上传产物。

测试报告模板

给出报告结构,包含日期、时长、状态、汇总统计、失败测试详情与产物列表。

特定场景示例

  • Web3 钱包测试:通过 context.addInitScript 模拟 window.ethereum
  • 金融关键流程测试:跳过生产环境、验证预览、等待区块链响应

使用方式

资料以模式与代码片段形式提供,未给出安装命令或具体调用步骤。使用时可参照其中的目录结构、POM 类、配置与 CI 工作流示例,将代码片段适配到自己的 Playwright 项目中。

适用场景

  • 需要为 Web 应用编写 E2E 测试
  • 希望采用 Page Object Model 组织测试代码
  • 需要配置多浏览器、多设备测试
  • 需要将 E2E 测试接入 CI/CD
  • 需要治理不稳定测试
  • 需要测试 Web3 钱包连接或金融交易等关键流程

限制

资料未提供安装命令、依赖版本要求、收费或价格信息、平台支持范围、性能数据或效果承诺。部分内容(如具体 API 行为)需以 Playwright 官方文档为准。