playwright/README.md
2025-03-11 14:56:16 +08:00

160 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Playwright E2E Testing Framework
本项目是基于Playwright的端到端测试框架用于自动化测试Web应用的功能和性能。
## 项目架构
```
playwright/
├── src/
│ ├── controllers/ # 控制器层,负责测试流程控制
│ ├── pages/ # 页面对象层,封装页面操作
│ └── services/ # 服务层,处理数据和业务逻辑
├── tests/
│ └── e2e/ # 端到端测试用例
├── .env.dev # 开发环境配置
└── playwright.config.js # Playwright配置文件
```
## 配置管理
项目采用分层的配置管理方式,确保配置的统一性和可维护性:
### 1. 环境变量配置 (.env.dev)
环境变量配置文件包含所有可配置项,按功能分类:
```ini
# 基础配置
BASE_URL=https://ibp-dev.longi.com
# 测试配置
TEST_DATA_DIR=test-data
TEST_BATCH_SIZE=5
TEST_RETRY_COUNT=3
TEST_BATCH_INTERVAL=1000
TEST_MAX_RETRY_DELAY=5000
# 超时配置
MENU_TIME_OUT=30000
EXPECT_TIMEOUT=30000
# 浏览器配置
BROWSER_HEADLESS=false
BROWSER_SLOW_MO=50
BROWSER_TIMEOUT=30000
VIEWPORT_WIDTH=1920
VIEWPORT_HEIGHT=1080
# 数据目录配置
MENU_DATA_FILE_PATH=test-data/menu-data.json
TEST_PROGRESS_FILE_PATH=test-data/test-progress.json
```
### 2. Playwright配置 (playwright.config.js)
Playwright配置文件统一管理所有浏览器相关的配置
- 浏览器设置headless模式、视窗大小等
- 测试超时设置
- 并发和重试策略
- 测试报告配置
### 3. 测试控制器配置 (TestController)
测试控制器只管理测试流程相关的配置:
- 批次大小
- 重试次数
- 批次间隔
- 最大重试延迟
## 主要功能
1. **菜单遍历测试**
- 自动收集菜单数据
- 批量执行菜单点击测试
- 支持断点续测
- 提供测试进度跟踪
2. **智能重试机制**
- 支持失败重试
- 使用指数退避策略
- 可配置最大重试次数和延迟
3. **灵活的配置系统**
- 所有配置项可通过环境变量覆盖
- 提供合理的默认值
- 配置项分类清晰
## 使用说明
1. **安装依赖**
```bash
npm install
npx playwright install
```
2. **配置环境变量**
- 复制 `.env.dev``.env`
- 根据需要修改配置项
3. **运行测试**
```bash
npm test
```
4. **查看报告**
```bash
npm run show-report
```
## 最佳实践
1. **配置管理**
- 所有配置统一在 `.env` 文件中管理
- 不同环境使用不同的 `.env` 文件
- 避免在代码中硬编码配置值
2. **测试用例编写**
- 使用页面对象模式
- 保持测试用例独立性
- 合理使用断言和超时设置
3. **错误处理**
- 实现合理的重试机制
- 记录详细的错误日志
- 提供清晰的错误信息
## 注意事项
1. 确保环境变量配置正确
2. 注意浏览器配置只在 `playwright.config.js` 中管理
3. 测试用例应该是独立和可重复的
4. 定期检查和清理测试数据
## 常见问题
1. **测试运行失败**
- 检查网络连接
- 验证环境变量配置
- 查看错误日志
2. **配置不生效**
- 确认环境变量文件位置正确
- 检查配置项拼写
- 重启测试进程
## 贡献指南
1. Fork 项目
2. 创建特性分支
3. 提交变更
4. 发起 Pull Request
## 许可证
MIT