mcpField
P
playwright-test

playwright-test

github.com/open-metadata测试与质量15.6k63 次安装今天更新
代码仓库

关于 playwright-test

playwright-test 是根据功能和场景描述生成 OpenMetadata Playwright 测试的技能。它要求遵循项目手册、运行 Playwright 检查,并按清单验证测试。

主要功能

  1. 01根据功能场景生成测试
  2. 02遵循 OpenMetadata Playwright 手册
  3. 03采用测试结构与防抖动模式
  4. 04运行 Playwright 代码检查
  5. 05依据验证清单检查输出

适用场景

  1. 01为 UI 功能编写端到端测试
  2. 02测试多角色及权限
  3. 03检查表单提交与数据持久化
  4. 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 执行成功,且没有错误)
  • ✅ 覆盖范围与角色(多角色测试、数据持久性、错误处理)

重要提醒

所有模式、规则和最佳实践都在手册中。

按顺序阅读并应用手册各部分:

  1. 防止不稳定的模式(重要——导致测试不稳定的首要原因)
  2. 测试文件结构模板(确保测试结构正确)
  3. 常见测试模式(适用于特定场景)
  4. ESLint 执行规则(运行 yarn lint:playwright——错误会阻止 CI)
  5. 验证清单(返回生成的测试之前)

最后说明

  • 生成可用于生产环境的测试,确保每次运行都能通过
  • 严格遵循手册中的所有模式
  • 对显而易见的代码不添加注释(例如,在 entity.create() 前添加 // Create entity)
  • 确保测试彼此独立——每个测试都能按任意顺序运行
  • 参考示例:playwright/e2e/Pages/DataContractInheritance.spec.ts、playwright/e2e/Features/Table.spec.ts

请严格遵循手册中的模式,生成可用于生产环境、易于维护且零不稳定性的测试。

评论

支持 Markdown