| config | ||
| src | ||
| test-data | ||
| tests/e2e | ||
| .env.dev | ||
| .env.uat | ||
| .gitignore | ||
| config.js | ||
| login-error.png | ||
| manage-automation.bat | ||
| manage-task-new.ps1 | ||
| package.json | ||
| playwright.config.js | ||
| README.md | ||
| run-tests.bat | ||
Playwright E2E Testing Framework
本项目是基于Playwright的端到端测试框架,用于自动化测试Web应用的功能和性能。
项目架构
playwright/
├── src/
│ ├── controllers/ # 控制器层,负责测试流程控制
│ ├── pages/ # 页面对象层,封装页面操作
│ └── services/ # 服务层,处理数据和业务逻辑
├── tests/
│ └── e2e/ # 端到端测试用例
├── .env.dev # 开发环境配置
└── playwright.config.js # Playwright配置文件
配置管理
项目采用分层的配置管理方式,确保配置的统一性和可维护性:
1. 环境变量配置 (.env.dev)
环境变量配置文件包含所有可配置项,按功能分类:
# 基础配置
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)
测试控制器只管理测试流程相关的配置:
- 批次大小
- 重试次数
- 批次间隔
- 最大重试延迟
主要功能
-
菜单遍历测试
- 自动收集菜单数据
- 批量执行菜单点击测试
- 支持断点续测
- 提供测试进度跟踪
-
智能重试机制
- 支持失败重试
- 使用指数退避策略
- 可配置最大重试次数和延迟
-
灵活的配置系统
- 所有配置项可通过环境变量覆盖
- 提供合理的默认值
- 配置项分类清晰
使用说明
-
安装依赖
npm install -
配置环境变量
- 复制
.env.dev到.env - 根据需要修改配置项
- 复制
-
运行测试
npm test -
查看报告
npm run show-report
最佳实践
-
配置管理
- 所有配置统一在
.env文件中管理 - 不同环境使用不同的
.env文件 - 避免在代码中硬编码配置值
- 所有配置统一在
-
测试用例编写
- 使用页面对象模式
- 保持测试用例独立性
- 合理使用断言和超时设置
-
错误处理
- 实现合理的重试机制
- 记录详细的错误日志
- 提供清晰的错误信息
注意事项
- 确保环境变量配置正确
- 注意浏览器配置只在
playwright.config.js中管理 - 测试用例应该是独立和可重复的
- 定期检查和清理测试数据
常见问题
-
测试运行失败
- 检查网络连接
- 验证环境变量配置
- 查看错误日志
-
配置不生效
- 确认环境变量文件位置正确
- 检查配置项拼写
- 重启测试进程
贡献指南
- Fork 项目
- 创建特性分支
- 提交变更
- 发起 Pull Request
许可证
MIT