关于 🎭 Playwright Test Automation Framework
这是基于 Playwright 和 TypeScript 的测试自动化框架,使用页面对象模型和独立测试数据组织端到端测试。它提供注册流程示例,并通过 @executeautomation/playwright-mcp-server 进行录制与回放。
主要功能
- 01页面对象模型架构
- 02测试数据与逻辑分离
- 03支持 TypeScript
- 04可复用组件与辅助方法
- 05基于 MCP 的录制与回放
- 06自动生成测试脚本
适用场景
- 01运行数据驱动的注册场景
- 02添加页面对象和测试场景
- 03使用 MCP 录制和回放测试
MCP 相关
集成 @executeautomation/playwright-mcp-server,用于测试录制与回放。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🎭 Playwright 测试自动化框架
🚀 这是一个功能强大的数据驱动测试自动化框架,使用 Playwright 和 TypeScript 构建,并借助 @executeautomation/playwright-mcp-server 增强测试录制和回放能力。采用页面对象模型设计模式,支持构建可扩展、易维护的自动化测试。
✨ 亮点
- 🏗️ 页面对象模型 - 构建简洁、易维护的测试架构
- 📊 数据驱动测试 - 借助外部测试数据轻松扩展测试
- 🔧 TypeScript 支持 - 提供可靠的类型检查和更好的 IDE 集成
- ♻️ 可复用组件 - 采用模块化设计,最大限度地复用代码
- 🎯 易于维护 - 集中管理定位器和数据
- 📈 可扩展设计 - 轻松添加新的测试场景
- 🎥 MCP 服务集成 - 增强测试录制和回放功能
🌟 主要特性
- 结构清晰、组织有序的测试架构
- 将测试数据与测试逻辑分离
- 提供常见操作的实用辅助方法
- 易于理解的页面对象模式实现
- 全面的测试数据管理
- 提供可直接使用的注册流程示例
- 使用 MCP 服务录制和回放测试
- 自动生成测试脚本
框架结构
tests/
├── data/ # Test Data Layer
│ ├── interfaces/
│ │ └── TestData.ts # Data type definitions
│ ├── TestDataHelper.ts # Helper class for data management
│ └── testData.ts # Test scenarios data
├── pages/ # Page Objects
│ ├── BasePage.ts # Base page with common functionality
│ ├── LoginPage.ts # Login page object
│ └── RegistrationPage.ts # Registration page object
└── specs/ # Test Specifications
└── registration.spec.ts # Test cases
特性
- 页面对象模型:将测试逻辑与页面交互分离
- 数据驱动测试:将测试数据与测试逻辑分离
- TypeScript:提供强类型和更好的 IDE 支持
- 可复用组件:在基类中封装通用功能
- 易于维护:集中管理定位器和数据
- 可扩展:轻松添加新的测试场景和页面对象
测试数据结构
该框架采用结构化方式管理测试数据:
interface TestScenario {
name: string;
login: LoginData;
registration: RegistrationData;
}
当前测试场景:
- 有效注册流程(男性用户)
- 女性用户注册
设置
- 克隆代码仓库:
git clone <repository-url>
cd playwrightMCP_Demo
- 安装依赖:
npm install
- 安装 Playwright 浏览器:
npx playwright install
运行测试
运行所有测试:
npx playwright test
运行指定测试文件:
npx playwright test tests/specs/registration.spec.ts
以有头模式运行测试:
npx playwright test --headed
添加新的测试场景
- 在
tests/data/testData.ts中添加新的测试数据:
{
name: 'Your Scenario Name',
login: {
email: '[email protected]'
},
registration: {
firstName: 'First',
lastName: 'Last',
address: 'Address',
email: '[email protected]',
phone: '1234567890',
gender: 'Male' | 'Female',
country: 'Country Name'
}
}
- 新增场景后,测试将自动执行。
框架组件
页面对象
- BasePage:包含通用方法和实用工具
- LoginPage:处理登录功能
- RegistrationPage:管理注册表单交互
数据管理
- TestData.ts:包含测试场景
- TestDataHelper:提供访问和管理测试数据的方法
- 接口:定义测试数据的结构
最佳实践
- 页面对象应专注于特定页面的功能
- 将测试数据与测试逻辑分开维护
- 使用有意义的场景名称
- 遵循 TypeScript 命名约定
- 保持测试相互独立且粒度小
贡献
- 为你的功能创建新分支
- 添加或更新测试和页面对象
- 根据需要更新测试数据
- 提交拉取请求
依赖项
- Playwright
- TypeScript
- Node.js
- @executeautomation/playwright-mcp-server - 用于增强测试录制与回放
- @playwright/test - 核心测试框架
支持
如有任何疑问或问题,请在仓库中创建一个新 issue。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。