Web App Testing 是一套关于 Web 应用测试的原则与策略资料,核心主张是“发现并测试一切,不留下任何未测试的路由”。
一、用途 该资料用于指导 Web 应用的测试工作,覆盖端到端(E2E)测试、Playwright 使用以及深度审计策略,帮助团队系统化地发现应用中的路由、接口与功能,并针对关键路径建立测试。
二、主要能力
- 运行时脚本:提供 scripts/playwright_runner.py,用于自动化浏览器测试。
- 基础浏览器测试:python scripts/playwright_runner.py https://example.com
- 带截图:python scripts/playwright_runner.py <url> --screenshot
- 无障碍检查:python scripts/playwright_runner.py <url> --a11y
- 依赖安装:pip install playwright && playwright install chromium
- 深度审计方法:先发现,再测试。发现目标包括路由(扫描 app/、pages/、router 文件)、API 端点(检索 HTTP 方法)、组件(查找组件目录)、功能(阅读文档)。系统化测试步骤为:Map(列出所有路由/API)、Scan(验证其响应)、Test(覆盖关键路径)。
- Web 测试金字塔:E2E(少量,关键用户流程)、集成(部分,API 与数据流)、组件(大量,单个 UI 单元)。
- E2E 测试原则:测试优先级依次为正常路径用户流程、认证流程、关键业务操作、错误处理。最佳实践包括使用 data-testid 获得稳定选择器、等待元素以避免不稳定测试、保持干净状态使测试相互独立、避免测试实现细节而测试用户行为。
- Playwright 原则:核心概念包括页面对象模型(封装页面逻辑)、Fixtures(可复用测试设置)、断言(内置自动等待)、Trace Viewer(调试失败)。配置建议:重试在 CI 上设为 2,Trace 设为 on-first-retry,截图设为 on-failure,视频设为 retain-on-failure。
- 视觉测试:适用场景价值从高到低为设计系统、营销页面、组件库、动态内容。策略为建立基线截图、变更时比较、审查视觉差异、对有意变更进行更新。
- API 测试原则:覆盖状态码(200、400、404、500)、响应结构(符合 schema)、错误信息(对用户友好)、边界情况(空、大、特殊字符)。
- 测试组织:文件结构建议为 tests/ 下分 e2e/(完整用户流程)、integration/(API、数据)、component/(UI 单元)、fixtures/(共享数据)。命名约定可采用基于功能(如 login.spec.ts)或描述性(如 user-can-checkout.spec.ts)。
- CI 集成:流水线步骤为安装依赖、安装浏览器、运行测试、上传产物(trace、截图)。并行化策略包括按文件(Playwright 默认)、分片(大型套件)、多 worker(多浏览器)。
- 反模式:不要测试实现而应测试行为;不要硬编码等待而应使用自动等待;不要跳过清理而应隔离测试;不要忽略不稳定测试而应修复根本原因。
三、使用方式 通过运行提供的 Python 脚本进行自动化浏览器测试,或参考其中的原则与配置建议来组织 Playwright 测试套件。使用脚本前需安装 playwright 与 chromium。
四、适用场景 适用于需要为 Web 应用建立 E2E 测试、进行深度审计、设计测试分层与 CI 流程的开发者与测试人员。
五、限制 资料强调 E2E 测试成本较高,应仅用于关键路径。关于具体收费、价格、平台支持范围等信息,资料中暂未提供。