# 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