139 lines
2.9 KiB
Markdown
139 lines
2.9 KiB
Markdown
# Playwright 自动化测试项目
|
|
|
|
基于 Playwright 的自动化测试框架,专门用于测试 Web 应用的菜单可访问性。
|
|
|
|
## 项目结构
|
|
|
|
```
|
|
playwright-project/
|
|
├── tests/ # 测试相关文件
|
|
│ ├── e2e/ # 端到端测试用例
|
|
│ │ └── menu.spec.js # 菜单测试用例
|
|
│ ├── pages/ # Page Object Models
|
|
│ │ ├── BasePage.js # 基础页面类
|
|
│ │ ├── LoginPage.js # 登录页面类
|
|
│ │ └── MainPage.js # 主页面类
|
|
│ └── utils/ # 测试工具
|
|
│ └── FileUtils.js # 文件操作工具
|
|
├── src/ # 源代码
|
|
│ ├── services/ # 业务服务
|
|
│ │ └── MenuDataService.js # 菜单数据服务
|
|
│ └── controllers/ # 业务控制器
|
|
│ └── TestController.js # 测试控制器
|
|
├── config/ # 配置文件
|
|
│ └── env.js # 环境变量配置
|
|
├── playwright.config.js # Playwright 配置
|
|
└── package.json # 项目配置
|
|
```
|
|
|
|
## 功能特性
|
|
|
|
- 🔄 批量测试菜单可访问性
|
|
- 💾 自动保存和恢复测试进度
|
|
- 🎯 支持分批次执行测试
|
|
- 🔍 详细的测试报告
|
|
- 🛠 可配置的测试参数
|
|
|
|
## 环境要求
|
|
|
|
- Node.js 14+
|
|
- npm 6+
|
|
- Playwright 依赖项
|
|
|
|
## 安装
|
|
|
|
```bash
|
|
# 安装依赖
|
|
npm install
|
|
|
|
# 安装 Playwright 浏览器
|
|
npx playwright install
|
|
```
|
|
|
|
## 配置
|
|
|
|
在 `.env.dev` 文件中配置以下环境变量:
|
|
|
|
```bash
|
|
# 基础URL
|
|
BASE_URL=https://your-app-url.com
|
|
|
|
# 测试配置
|
|
TEST_BATCH_SIZE=5 # 每批次测试的菜单数量
|
|
TEST_RETRY_COUNT=3 # 失败重试次数
|
|
TEST_BATCH_INTERVAL=2000 # 批次间隔时间(ms)
|
|
MENU_TIME_OUT=30000 # 菜单加载超时时间
|
|
|
|
# 数据目录配置
|
|
TEST_DATA_DIR=test-data
|
|
MENU_DATA_FILE_PATH=test-data/menu-data.json
|
|
TEST_PROGRESS_FILE_PATH=test-data/test-progress.json
|
|
```
|
|
|
|
## 使用方法
|
|
|
|
### 运行测试
|
|
|
|
```bash
|
|
# 运行菜单测试
|
|
npm run test:menu
|
|
|
|
# 使用 UI 模式运行测试
|
|
npm run test:menu:ui
|
|
|
|
# 调试模式运行测试
|
|
npm run test:menu:debug
|
|
|
|
# 清理数据并重新测试
|
|
npm run test:menu:clean
|
|
```
|
|
|
|
### 查看报告
|
|
|
|
```bash
|
|
npm run report
|
|
```
|
|
|
|
## 测试流程
|
|
|
|
1. **数据收集**
|
|
- 登录系统
|
|
- 收集菜单数据
|
|
- 保存到文件
|
|
|
|
2. **批量测试**
|
|
- 分批加载菜单
|
|
- 逐个点击测试
|
|
- 记录测试进度
|
|
|
|
3. **错误处理**
|
|
- 自动重试失败项
|
|
- 记录错误信息
|
|
- 生成测试报告
|
|
|
|
## 开发指南
|
|
|
|
### 添加新的测试用例
|
|
|
|
1. 在 `tests/e2e` 目录下创建测试文件
|
|
2. 使用 Page Object Model 模式
|
|
3. 遵循现有的代码结构
|
|
|
|
### 修改页面对象
|
|
|
|
1. 在 `tests/pages` 目录下修改或添加页面类
|
|
2. 继承 `BasePage` 类
|
|
3. 实现必要的页面方法
|
|
|
|
## 贡献指南
|
|
|
|
1. Fork 项目
|
|
2. 创建特性分支
|
|
3. 提交更改
|
|
4. 推送到分支
|
|
5. 创建 Pull Request
|
|
|
|
## 许可证
|
|
|
|
MIT
|