mcpField
E
e2e-testing-automation

e2e-testing-automation

github.com/aj-geddes测试与质量373691 次安装34 周前更新
代码仓库

关于 e2e-testing-automation

e2e-testing-automation 是端到端测试技能,面向需要验证完整用户流程和前后端协作的开发与测试团队。它涵盖 Playwright、Cypress 和 Python Selenium 的参考指南及测试实践。

主要功能

  1. 01覆盖完整用户工作流
  2. 02模拟点击、输入和滚动
  3. 03提供 Playwright 指南
  4. 04提供 Cypress 指南
  5. 05提供 Python Selenium 指南
  6. 06包含页面对象模式建议

适用场景

  1. 01验证注册、登录和结账流程
  2. 02测试多步骤业务工作流
  3. 03检查跨浏览器表现
  4. 04对界面变更执行回归测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill e2e-testing-automation

安装后在 Claude Code 中输入/e2e-testing-automation确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cypress-e2e-tests.md
page-object-model-pattern.md
playwright-e2e-tests.md
selenium-with-python-pytest.md
scripts/
scaffold-tests.sh
templates/
test-template.js

详细介绍

端到端测试自动化

目录

概述

端到端(E2E)测试会验证从 UI 到所有后端系统的完整用户工作流,确保从用户的角度来看,整个应用程序堆栈能够正确协同工作。E2E 测试会模拟用户通过浏览器进行的真实交互,包括身份验证、导航、表单提交和结果验证。

适用场景

  • 测试关键用户流程(注册、结账、登录)
  • 验证多步骤工作流
  • 在不同浏览器和设备上进行测试
  • 针对 UI 变更进行回归测试
  • 验证前端与后端的集成
  • 测试真实用户交互(点击、输入、滚动)
  • 对部署进行冒烟测试

快速入门

最小可运行示例:

// tests/e2e/checkout.spec.ts
import { test, expect, Page } from "@playwright/test";

test.describe("E-commerce Checkout Flow", () => {
  let page: Page;

  test.beforeEach(async ({ page: p }) => {
    page = p;
    await page.goto("/");
  });

  test("complete checkout flow as guest user", async () => {
    // 1. Browse and add product to cart
    await page.click("text=Shop Now");
    await page.click('[data-testid="product-1"]');
    await expect(page.locator("h1")).toContainText("Product Name");

    await page.click('button:has-text("Add to Cart")');
    await expect(page.locator(".cart-count")).toHaveText("1");

    // 2. Go to cart and proceed to checkout
    await page.click('[data-testid="cart-icon"]');
    await expect(page.locator(".cart-item")).toHaveCount(1);
    await page.click("text=Proceed to Checkout");

// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
Playwright E2E 测试Playwright E2E 测试
Cypress E2E 测试Cypress E2E 测试
使用 Python(pytest)的 Selenium使用 Python(pytest)的 Selenium
页面对象模型模式页面对象模型模式

最佳实践

✅ 应该做
  • 使用 data-testid 属性作为稳定的选择器
  • 实施页面对象模型,便于维护
  • 彻底测试关键用户流程
  • 在多个浏览器中运行测试(跨浏览器测试)
  • 使用显式等待,而不是 sleep/timeout
  • 在每次测试后清理测试数据
  • 在测试失败时截取屏幕截图
  • 尽可能并行执行测试
❌ 不应该做
  • 使用脆弱的 CSS 选择器(如 nth-child)
  • 测试所有可能的 UI 组合(重点关注关键路径)
  • 在测试之间共享状态
  • 使用固定延迟(sleep/timeout)
  • 忽略不稳定的测试
  • 将 E2E 测试用于单元级测试
  • 详细测试第三方 UI 组件
  • 跳过移动设备/响应式测试

评论

支持 Markdown