关于 playwright-test
playwright-test 是根据功能和场景描述生成 OpenMetadata Playwright 测试的技能。它要求遵循项目手册、运行 Playwright 检查,并按清单验证测试。
主要功能
- 01根据功能场景生成测试
- 02遵循 OpenMetadata Playwright 手册
- 03采用测试结构与防抖动模式
- 04运行 Playwright 代码检查
- 05依据验证清单检查输出
适用场景
- 01为 UI 功能编写端到端测试
- 02测试多角色及权限
- 03检查表单提交与数据持久化
- 04交付前验证生成的测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ open-metadata/ openmetadata --skill playwright-test安装后在 Claude Code 中输入/playwright-test确认已加载。
详细介绍
Playwright 测试生成器 - OpenMetadata
按照 OpenMetadata 规范,生成可用于生产环境、零不稳定性的 Playwright 测试。
用法
/playwright-test
Feature: <feature name>
Category: <Features|Pages|Flow|VersionPages>
Entity: <Table|Dashboard|Pipeline|Topic|Database|User|Team|Glossary|Other>
Domain: <Governance|Discovery|Platform|Observability|Integration>
Scenarios:
- <scenario 1 description>
- <scenario 2 description>
- <scenario 3 description>
Roles: <admin|dataConsumer|dataSteward|owner> (optional, defaults to admin)
快速示例
/playwright-test
Feature: Data Quality Rules
Category: Features
Entity: Table
Domain: Observability
Scenarios:
- Admin can create and configure data quality rules
- Data consumer can view test results but not edit rules
- Test results are persisted after page reload
Roles: admin, dataConsumer
说明
第 1 步:首先阅读手册
重要:生成任何测试之前,先阅读并应用以下内容中的所有模式:
openmetadata-ui/src/main/resources/ui/playwright/PLAYWRIGHT_DEVELOPER_HANDBOOK.md
手册包含:
- 测试理念(以用户为中心,关注行为)
- 防止不稳定的模式(如
:visible选择器链模式等) - 测试超时策略(
test.slow()与test.setTimeout()) - 常见测试模式(表单提交、下拉菜单、多角色测试)
- 定位器优先级指南
- 支持类参考
- 领域标签
- 验证清单
继续之前,请应用手册中的所有原则。
第 2 步:使用手册模板生成测试
使用手册中的测试文件结构模板。其中包含:
- 正确的导入(
performAdminLogin、实体类、实用工具) - 带领域标签的
test.describe - 通过 API 管理实体生命周期的
beforeAll/afterAll - 用于处理超时的
test.slow() - 用于清晰组织测试的
test.step() - API 响应验证模式
第 3 步:应用手册中的常见测试模式
参考常见测试模式部分,了解以下内容:
- 使用 API 验证的表单提交
- 下拉菜单选择(使用
:visible链模式) - 多角色权限测试
- 数据持久性验证
- 导航模式
- 搜索和筛选模式
第 4 步:运行 ESLint 检查
返回生成的测试之前,运行 Playwright 代码检查器,自动发现反模式:
cd openmetadata-ui/src/main/resources/ui
yarn lint:playwright
错误级规则(no-networkidle、no-page-pause、no-focused-test)会阻止 CI。完成之前,请修复所有错误。完整规则参考请参阅手册的 ESLint 执行规则部分。
第 5 步:根据手册清单进行验证
返回生成的测试之前,请核对手册验证清单中的所有项目:
- ✅ 结构与组织(
test.step、领域标签、导入、beforeAll/afterAll) - ✅ 防止不稳定(不使用
waitForTimeout、networkidle、force: true、位置选择器或存储的:visible定位器) - ✅ API 与网络(在操作前使用
waitForResponse,验证状态码) - ✅ 等待与断言(
waitForAllLoadersToDisappear、语义定位器、适当的断言) - ✅ ESLint(
yarn lint:playwright执行成功,且没有错误) - ✅ 覆盖范围与角色(多角色测试、数据持久性、错误处理)
重要提醒
所有模式、规则和最佳实践都在手册中。
按顺序阅读并应用手册各部分:
- 防止不稳定的模式(重要——导致测试不稳定的首要原因)
- 测试文件结构模板(确保测试结构正确)
- 常见测试模式(适用于特定场景)
- ESLint 执行规则(运行
yarn lint:playwright——错误会阻止 CI) - 验证清单(返回生成的测试之前)
最后说明
- 生成可用于生产环境的测试,确保每次运行都能通过
- 严格遵循手册中的所有模式
- 对显而易见的代码不添加注释(例如,在
entity.create()前添加// Create entity) - 确保测试彼此独立——每个测试都能按任意顺序运行
- 参考示例:
playwright/e2e/Pages/DataContractInheritance.spec.ts、playwright/e2e/Features/Table.spec.ts
请严格遵循手册中的模式,生成可用于生产环境、易于维护且零不稳定性的测试。
评论
支持 Markdown