SuperAPI AI 工具集

e2e-tester

测试与质量

查看项目

更新于 10-16 02:06

技能介绍

用途

e2e-tester 用于为 Redpanda Console 编写和运行基于 Playwright 的端到端(E2E)测试。测试针对通过 testcontainers 在 Docker 容器中运行的完整 Redpanda Console 技术栈执行。

适用场景包括:

  • 测试包含两个及以上步骤的用户旅程(例如登录 → 操作 → 验证)
  • 多页面工作流
  • 使用 Playwright 进行浏览器自动化

不适用场景:组件单元测试应使用 testing 技能。

主要能力

  • 使用 Playwright 编写 E2E 测试,覆盖多步骤、多页面用户流程
  • 通过 testcontainers 管理容器,启动完整 Redpanda Console 技术栈
  • 分析测试失败,并借助 Task 工具与 MCP Playwright 代理进行调试
  • 在缺少语义化选择器时,为组件补充 data-testid 属性
  • 提升测试稳定性,避免脆弱选择器与硬编码等待
  • 通过 afterEach 调用清理 API 端点,清理测试数据

使用方式

关键规则

始终(ALWAYS):

  • 在运行 E2E 测试前执行 bun run build(前端资源为必需)
  • 使用 testcontainers API 管理容器(测试中绝不使用手动 docker 命令)
  • 使用 page.getByRole() 和 page.getByLabel() 选择器(避免 CSS 选择器)
  • 当语义化选择器不可用时,添加 data-testid 属性
  • 使用 Task 工具配合 MCP Playwright 代理分析失败
  • 使用 afterEach 调用清理 API 端点来清理测试数据

绝不(NEVER):

  • 测试 UI 组件渲染(应使用单元/集成测试)
  • 使用脆弱的 CSS 选择器,如 .class-name 或 #id
  • 在 .click() 上使用 force:true,或使用 waitForTimeout
  • 硬编码等待时间(应使用带条件的 waitFor)
  • 测试失败后遗留运行中的容器
  • 将测试截图提交到 git

命令

bun run build                # 构建前端(必须先执行!)
bun run e2e-test             # 运行 OSS E2E 测试
bun run e2e-test-enterprise  # 运行 Enterprise E2E 测试
bun run e2e-test:ui          # Playwright UI 模式(调试)
bun run e2e-test tests/topics/create-topic.spec.ts  # 运行指定文件

测试架构

  • OSS 模式(bun run e2e-test):Redpanda + Backend + OwlShop 容器
  • Enterprise 模式(bun run e2e-test-enterprise):在 OSS 基础上增加 RBAC、SSO(需要 console-enterprise 仓库)
  • 文件位置:tests/<feature>/*.spec.ts

选择器优先级

  1. getByRole() —— 最适合可访问性
  2. getByLabel() —— 用于表单输入
  3. getByText() —— 用于内容验证
  4. getByTestId() —— 当语义化选择器不清晰时
  5. CSS 选择器 —— 尽可能避免

测试 ID 命名

  • 使用 kebab-case:data-testid="feature-action-element"
  • 具体化:包含功能名 + 动作 + 元素类型
  • 动态:data-testid={item-delete-${id}}

参考资料

  • Container Setup —— Testcontainer 生命周期、配置、CI 设置
  • Test Patterns —— 多步骤工作流、表单、表格、API 测试
  • Failure Analysis —— 错误模式、调试、MCP Playwright 代理

输出

完成工作后:

  1. 确认前端构建成功
  2. 验证所有 E2E 测试通过
  3. 记录添加到组件中的任何新测试 ID
  4. 说明测试容器的清理情况

限制

  • 不用于测试 UI 组件渲染,此类测试应使用单元/集成测试
  • Enterprise 模式需要 console-enterprise 仓库
  • 运行 E2E 测试前必须先构建前端资源
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供