关于 playwright
面向编写、调试或优化端到端测试的开发者,提供 Playwright 与 Next.js 测试最佳实践。43 条规则分为八类,涵盖测试结构、定位器、认证、Next.js 行为、性能和 CI。
主要功能
- 01八类共 43 条规则
- 02测试架构与定位器建议
- 03等待、断言和认证实践
- 04模拟与 Next.js 集成
- 05性能、调试和 CI 指引
适用场景
- 01为 Next.js 应用编写端到端测试
- 02诊断不稳定或失败的测试
- 03在测试间复用认证状态
- 04为 CI 优化测试套件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill playwright安装后在 Claude Code 中输入/playwright确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mdarch-cleanup-state.mdarch-fixtures.mdarch-page-object-model.mdarch-parallel-execution.mdarch-test-isolation.mdarch-test-production.mdauth-api-login.mdauth-multiple-roles.mdauth-parallel-workers.mdauth-session-storage.mdauth-storage-state.mddebug-ci-reporters.mddebug-inspector.mddebug-screenshots-videos.mddebug-trace-viewer.mdloc-avoid-xpath.mdloc-chained-locators.mdloc-data-testid.mdloc-label-selectors.mdloc-placeholder-selector.mdloc-role-selectors.mdloc-text-selectors.mdmock-abort-requests.mdmock-api-responses.mdmock-har-files.mdmock-intercept-modify.md详细介绍
Playwright + Next.js 测试最佳实践
面向 Next.js 应用的 Playwright 综合测试优化指南。包含 8 个类别中的 43 条规则,并按影响程度排序,助你编写可靠、快速且易于维护的端到端测试。
适用场景
在以下场景中可参考这些指南:
- 为 Next.js 应用编写新的 Playwright 测试
- 调试不稳定或失败的测试
- 优化测试执行速度
- 设置身份验证状态复用
- 配置用于测试的 CI/CD 流水线
- 测试 Server Components 和 App Router 功能
- 检查测试代码中的可靠性问题
按优先级划分的规则类别
| 优先级 | 类别 | 影响程度 | 前缀 |
|---|---|---|---|
| 1 | 测试架构 | CRITICAL | arch- |
| 2 | 选择器与定位器 | CRITICAL | loc- |
| 3 | 等待与断言 | HIGH | wait- |
| 4 | 身份验证与状态 | HIGH | auth- |
| 5 | 模拟与网络 | MEDIUM-HIGH | mock- |
| 6 | Next.js 集成 | MEDIUM | next- |
| 7 | 性能与速度 | MEDIUM | perf- |
| 8 | 调试与 CI | LOW-MEDIUM | debug- |
快速参考
1. 测试架构(CRITICAL)
arch-test-isolation- 为每项测试使用全新的浏览器上下文arch-parallel-execution- 启用并行测试执行arch-page-object-model- 对复杂页面使用页面对象模型arch-fixtures- 使用 fixtures 共享初始化设置arch-test-production- 针对生产构建进行测试arch-cleanup-state- 每项测试后清理测试状态
2. 选择器与定位器(CRITICAL)
loc-role-selectors- 优先使用基于角色的选择器,而非 CSSloc-data-testid- 对动态元素使用 data-testidloc-label-selectors- 对表单输入使用 getByLabelloc-text-selectors- 对静态内容使用 getByTextloc-avoid-xpath- 避免使用 XPath 选择器loc-chained-locators- 链式组合定位器以提高精确度loc-placeholder-selector- 谨慎使用 getByPlaceholder
3. 等待与断言(HIGH)
wait-web-first-assertions- 使用 web-first 断言wait-avoid-hard-waits- 避免硬性等待wait-network-idle- 对复杂页面使用网络空闲状态wait-action-retries- 交互前让操作自动等待wait-soft-assertions- 对非关键检查使用软断言wait-custom-timeout- 合理配置超时时间
4. 身份验证与状态(HIGH)
auth-storage-state- 使用 storage state 复用身份验证状态auth-multiple-roles- 为不同角色使用独立的 storage stateauth-session-storage- 处理身份验证所需的 session storageauth-api-login- 使用 API 登录加快身份验证初始化auth-parallel-workers- 为并行测试使用 worker 作用域的身份验证
5. 模拟与网络(中高)
mock-api-responses- 为确定性测试模拟 API 响应mock-intercept-modify- 拦截并修改真实响应mock-har-files- 使用 HAR 文件处理复杂的模拟场景mock-abort-requests- 中止不必要的请求mock-network-conditions- 模拟网络条件
6. Next.js 集成(中)
next-wait-hydration- 交互前等待水合完成next-server-components- 正确测试服务端组件next-app-router-navigation- 测试 App Router 导航模式next-server-actions- 端到端测试服务端操作next-baseurl-config- 配置 baseURL,实现简洁导航
7. 性能与速度(中)
perf-sharding- 为大型测试套件使用分片perf-headless-ci- 在 CI 中使用无头模式perf-browser-selection- 有策略地选择浏览器perf-reuse-server- 尽可能复用开发服务器perf-retries- 配置重试机制,以恢复不稳定的测试
8. 调试与 CI(低至中)
debug-trace-viewer- 使用跟踪查看器排查失败的测试debug-screenshots-videos- 在失败时捕获屏幕截图和视频debug-inspector- 使用 Playwright Inspector 进行交互式调试debug-ci-reporters- 配置报告器以集成 CI
使用方法
阅读各个参考文件,了解详细说明和代码示例:
参考文件
| 文件 | 说明 |
|---|---|
| AGENTS.md | 包含所有规则的完整汇编指南 |
| references/_sections.md | 分类定义和排序 |
| assets/templates/_template.md | 新规则模板 |
| metadata.json | 版本和参考信息 |
评论
支持 Markdown