# 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