# E2E/UAT 测试套件使用指南 ## 快速开始 ### 1. 环境准备 ```bash # 安装Python依赖 pip install -r requirements.txt # 复制环境变量配置 cp .env.example .env # 根据实际情况修改 .env 文件 ``` ### 2. 启动开发环境 ```bash # 方式1: 使用快速启动脚本 ./start_dev.sh # 方式2: 手动启动 # 启动后端 cd novalon-manage-api mvn spring-boot:run -Dspring-boot.run.profiles=dev # 启动前端 cd novalon-manage-web npm run dev ``` ### 3. 运行测试 ```bash # 运行所有测试 python3 run_tests.py # 运行特定测试文件 python3 run_tests.py --test-case tests/test_auth.py # 生成测试报告 python3 run_tests.py --html-report reports/report.html --coverage # 使用Allure生成详细报告 pytest tests/ --alluredir=reports/allure allure serve reports/allure ``` ## 项目结构 ``` test-suite/ ├── api/ # API测试 │ ├── base_api.py # 基础API客户端 │ ├── auth_api.py # 认证测试 │ ├── user_api.py # 用户管理测试 │ ├── role_api.py # 角色管理测试 │ ├── menu_api.py # 菜单管理测试 │ ├── config_api.py # 配置管理测试 │ ├── audit_api.py # 审计日志测试 │ ├── notice_api.py # 通知管理测试 │ ├── file_api.py # 文件管理测试 │ └── dictionary_api.py # 字典管理测试 ├── tests/ # 集成测试 │ ├── test_auth.py # 认证集成测试 │ ├── test_user.py # 用户管理集成测试 │ ├── test_role.py # 角色管理集成测试 │ ├── test_menu.py # 菜单管理集成测试 │ ├── test_config.py # 配置管理集成测试 │ ├── test_audit.py # 审计日志集成测试 │ ├── test_notice.py # 通知管理集成测试 │ ├── test_file.py # 文件管理集成测试 │ ├── test_dictionary.py # 字典管理集成测试 │ └── test_uat_workflow.py # UAT工作流测试 ├── config/ # 配置文件 │ ├── settings.py # 测试配置 │ └── __init__.py ├── utils/ # 工具函数 │ ├── data_generator.py # 测试数据生成 │ ├── test_data_manager.py # 测试数据管理 │ ├── logger.py # 日志工具 │ └── assertions.py # 断言工具 ├── reports/ # 测试报告输出 ├── scripts/ # 辅助脚本 │ ├── start_dev.sh # 快速启动 │ ├── start_backend.sh # 启动后端 │ ├── start_frontend.sh # 启动前端 │ ├── stop_services.sh # 停止服务 │ ├── configure_h2.sh # H2配置 │ ├── generate_report.sh # 生成报告 │ └── run_e2e_uat.sh # E2E/UAT完整流程 ├── .env.example # 环境变量示例 ├── requirements.txt # Python依赖 ├── README.md # 本文件 └── TEST_REPORT.md # 测试报告 ``` ## 测试分类 ### 1. API测试 (api/) #### 认证测试 (auth_api.py) - 用户登录/登出 - Token生成与验证 - 权限验证 - JWT令牌管理 #### 用户管理测试 (user_api.py) - 用户CRUD操作 - 用户状态管理 - 用户权限验证 - 批量操作 #### 角色管理测试 (role_api.py) - 角色CRUD操作 - 角色权限分配 - 角色菜单配置 - 权限验证 #### 菜单管理测试 (menu_api.py) - 菜单CRUD操作 - 路由配置 - 菜单权限 - 动态加载 #### 配置管理测试 (config_api.py) - 系统配置CRUD - 配置项验证 - 配置缓存 #### 审计日志测试 (audit_api.py) - 登录日志查询 - 操作日志查询 - 异常日志查询 - 日志清理 #### 通知管理测试 (notice_api.py) - 通知CRUD操作 - 通知发送 - 通知状态 #### 文件管理测试 (file_api.py) - 文件上传 - 文件下载 - 文件删除 - 文件列表 #### 字典管理测试 (dictionary_api.py) - 字典类型CRUD - 字典数据CRUD - 字典缓存 ### 2. 集成测试 (tests/) #### UAT工作流测试 (test_uat_workflow.py) - 完整用户生命周期 - 完整角色权限流程 - 完整菜单配置流程 - 完整系统配置流程 - 完整审计日志流程 #### 边界条件测试 (test_boundary_conditions.py) - 空数据处理 - 超长数据处理 - 特殊字符处理 - 边界值测试 #### 灾难恢复测试 (test_disaster_recovery.py) - 数据库故障恢复 - 服务重启恢复 - 数据备份恢复 #### 安全测试 (test_security.py) - SQL注入防护 - XSS防护 - 认证绕过防护 - 权限提升防护 #### 性能测试 (test_performance.py) - 响应时间测试 - 并发性能测试 - 压力测试 ## 配置说明 ### 环境变量 (.env) ```bash # API配置 BASE_URL=http://localhost:8084 FRONTEND_URL=http://localhost:3000 # 数据库配置 DATABASE=h2 DATABASE_HOST=localhost DATABASE_PORT=55432 DATABASE_NAME=manage_system DATABASE_USERNAME=novalon DATABASE_PASSWORD=novalon123 # 测试用户凭证 TEST_USERNAME=admin TEST_PASSWORD=admin123 # 浏览器配置 HEADLESS_BROWSER=true BROWSER_TYPE=chromium # 超时配置(毫秒) REQUEST_TIMEOUT=30000 # 测试模式 TEST_MODE=true ENV=dev # 并行测试配置 PARALLEL_TEST=true NUM_WORKERS=4 # 重试配置 RERUN_FAILED_TESTS=true RERUN_COUNT=2 # 覆盖率配置 COVERAGE_REPORT=true COVERAGE_THRESHOLD=80 # 报告配置 HTML_REPORT=reports/report.html JUNIT_REPORT=reports/junit.xml ALLURE_REPORT=reports/allure # 日志配置 LOG_LEVEL=INFO LOG_FILE=reports/test.log ``` ### H2数据库配置 ```yaml # application-h2-test.yml spring: r2dbc: url: r2dbc:h2:mem:///testdb username: sa password: datasource: url: jdbc:h2:mem:testdb username: sa password: h2: console: enabled: true path: /h2-console flyway: enabled: false ``` ## CI/CD集成 ### Woodpecker配置 ```yaml pipeline: test-e2e-uat: image: python:3.11 commands: - cd test-suite - pip install -r requirements.txt - python3 run_tests.py --parallel --reruns 2 --coverage when: event: [push, pull_request] ``` ### 运行命令 ```bash # 本地运行 python3 run_tests.py # 生成报告 python3 run_tests.py --html-report reports/report.html --coverage # Allure报告 pytest tests/ --alluredir=reports/allure allure serve reports/allure ``` ## 最佳实践 ### 1. 测试编写 - 使用Fixture管理测试数据 - 使用Fixture自动清理测试数据 - 使用参数化测试覆盖多种场景 - 使用断言验证预期结果 ### 2. 测试运行 - 提交前运行本地测试 - 使用并行测试提高效率 - 失败用例自动重试 - 生成详细的测试报告 ### 3. 测试维护 - 定期清理测试数据 - 更新测试用例覆盖新功能 - 优化测试性能 - 增加测试覆盖 ## 故障排查 ### 常见问题 1. **连接失败** - 检查后端服务是否启动 - 检查BASE_URL配置 - 检查网络连接 2. **认证失败** - 检查TEST_USERNAME和TEST_PASSWORD - 检查用户是否存在 - 检查用户状态 3. **测试超时** - 增加REQUEST_TIMEOUT - 检查服务性能 - 检查网络延迟 4. **数据清理失败** - 检查数据库连接 - 检查权限配置 - 手动清理测试数据 ## 技术支持 - **作者**: 张翔 - **版本**: 1.0.0 - **更新日期**: 2026-03-31