Files
novalon-manage-system/scripts/README.md
T
张翔 e2ad1331cc feat: 添加测试框架和覆盖率报告功能
feat(测试): 新增Playwright和Vitest测试配置
feat(测试): 添加测试覆盖率报告生成功能
feat(测试): 实现前后端测试脚本集成

fix(测试): 修复测试密码不匹配问题
fix(测试): 修正URL等待策略
fix(测试): 调整错误消息选择器

refactor(测试): 重构测试目录结构
refactor(测试): 优化测试用例组织方式

docs: 更新测试报告文档
docs: 添加测试覆盖率报告模板

ci: 添加Docker测试环境配置
ci: 实现测试自动化脚本

chore: 更新依赖版本
chore: 添加测试相关配置文件
2026-03-25 09:03:37 +08:00

285 lines
6.8 KiB
Markdown

# E2E和UAT自动化测试框架
## 📋 概述
这是一个完整的端到端(E2E)和用户验收测试(UAT)自动化测试框架,基于Python Playwright实现,支持Novalon管理系统的全面自动化测试。
## 🎯 主要特性
-**完整的E2E测试覆盖** - 涵盖所有关键业务流程
-**UAT用户验收测试** - 模拟真实用户操作场景
-**自动化测试执行** - 一键运行所有测试
-**详细的测试报告** - 生成HTML和JSON格式的测试报告
-**服务器自动管理** - 自动启动和停止测试服务器
-**测试数据管理** - 自动化的测试数据初始化和清理
-**截图和日志** - 失败时自动截图和记录详细日志
-**并发测试支持** - 支持并发操作和边界场景测试
## 📁 项目结构
```
novalon-manage-system/
├── scripts/
│ ├── server_manager.py # 服务器管理脚本
│ ├── e2e_uat_automation.py # E2E和UAT自动化测试主脚本
│ ├── test_report_generator.py # 测试报告生成器
│ ├── run_e2e_uat.sh # 测试运行Shell脚本
│ └── requirements.txt # Python依赖
├── test_screenshots/ # 测试截图目录
├── test_logs/ # 测试日志目录
└── test_reports/ # 测试报告目录
```
## 🚀 快速开始
### 1. 安装依赖
```bash
cd scripts
pip install -r requirements.txt
playwright install --with-deps
```
### 2. 配置环境
确保以下服务可用:
- 后端API服务:http://localhost:8084
- 前端Web服务:http://localhost:3003
- PostgreSQL数据库:localhost:55432
### 3. 运行测试
#### 方式一:使用Shell脚本(推荐)
```bash
# 执行完整测试流程(启动服务器+运行测试+清理)
./scripts/run_e2e_uat.sh run
# 仅启动服务器
./scripts/run_e2e_uat.sh start
# 仅运行测试
./scripts/run_e2e_uat.sh test
# 仅停止服务器
./scripts/run_e2e_uat.sh stop
# 清理测试环境
./scripts/run_e2e_uat.sh cleanup
# 生成测试报告
./scripts/run_e2e_uat.sh report
```
#### 方式二:使用Python脚本
```bash
# 运行E2E和UAT测试(无头模式)
python scripts/e2e_uat_automation.py
# 运行测试(有头模式,可以看到浏览器操作)
python scripts/e2e_uat_automation.py --headed
# 自定义URL和超时时间
python scripts/e2e_uat_automation.py \
--base-url http://localhost:3003 \
--api-url http://localhost:8084 \
--timeout 30000
```
#### 方式三:使用服务器管理脚本
```bash
# 启动所有服务器
python scripts/server_manager.py start --server all
# 启动特定服务器
python scripts/server_manager.py start --server backend
python scripts/server_manager.py start --server frontend
# 停止所有服务器
python scripts/server_manager.py stop --server all
# 重启服务器
python scripts/server_manager.py restart --server all
# 查看服务器状态
python scripts/server_manager.py status --server all
```
## 📊 测试用例
### TC-001: 完整登录流程
- 测试管理员登录
- 验证Dashboard页面加载
- 验证登录日志记录
- 测试普通用户登录
### TC-002: 角色管理完整流程
- 导航到角色管理页面
- 验证字段映射
- 创建新角色
- 编辑角色信息
- 删除角色
### TC-003: 菜单管理数据验证
- 导航到菜单管理页面
- 验证菜单树结构
- 验证一级和二级菜单
- 通过API验证字段映射
### TC-004: 前后端字段映射一致性
- 验证角色API字段映射
- 验证菜单API字段映射
- 验证用户API字段映射
### TC-005: RBAC权限验证
- 测试管理员权限
- 测试普通用户权限
- 测试未授权访问拦截
### TC-006: 空数据处理
- 测试角色空数据
- 测试菜单空数据
### TC-007: 异常输入处理
- 测试重复角色标识
- 测试空用户名登录
- 测试空密码登录
### TC-008: 并发操作测试
- 测试多用户并发编辑
- 验证并发冲突处理
## 📈 测试报告
测试完成后会自动生成以下报告:
1. **HTML报告** - 交互式HTML报告,包含:
- 测试摘要统计
- 详细测试结果
- 失败截图
- 错误信息
- 测试步骤
2. **JSON报告** - 机器可读的JSON格式报告
3. **文本报告** - 简洁的文本格式报告
报告位置:
- `test_reports/test_report_YYYYMMDD_HHMMSS.html`
- `test_reports/test_report_YYYYMMDD_HHMMSS.json`
- `test_reports/E2E_UAT_Report_YYYYMMDD_HHMMSS.txt`
## 🔧 配置说明
### 测试配置
可以在 `e2e_uat_automation.py` 中修改 `TestConfig` 类来调整测试配置:
```python
@dataclass
class TestConfig:
base_url: str = "http://localhost:3003" # 前端URL
api_url: str = "http://localhost:8084" # 后端URL
headless: bool = True # 无头模式
timeout: int = 30000 # 超时时间(毫秒)
screenshot_dir: str = "test_screenshots" # 截图目录
```
### 测试用户配置
测试用户信息:
```python
admin_user = {
"username": "admin",
"password": "admin123",
"expected_role": "超级管理员"
}
test_user = {
"username": "test_user",
"password": "test123",
"expected_role": "测试普通用户"
}
```
## 🐛 故障排除
### 问题1: 服务器启动失败
**解决方案:**
```bash
# 检查端口占用
lsof -i :8084
lsof -i :3003
# 杀死占用端口的进程
lsof -ti:8084 | xargs kill -9
lsof -ti:3003 | xargs kill -9
```
### 问题2: 测试超时
**解决方案:**
- 增加超时时间:`--timeout 60000`
- 检查服务器是否正常运行
- 检查网络连接
### 问题3: Playwright浏览器未安装
**解决方案:**
```bash
playwright install --with-deps
```
### 问题4: 测试数据问题
**解决方案:**
```bash
# 重新初始化测试数据
cd novalon-manage-api/manage-app
mvn flyway:clean flyway:migrate
```
## 📝 最佳实践
1. **定期运行测试** - 在每次代码提交前运行测试
2. **维护测试数据** - 定期更新测试数据以反映业务变化
3. **分析失败原因** - 仔细分析测试失败的根本原因
4. **更新测试用例** - 根据业务需求更新测试用例
5. **保持测试独立性** - 确保测试用例之间相互独立
6. **使用版本控制** - 将测试脚本纳入版本控制
## 🤝 贡献指南
1. Fork项目
2. 创建特性分支
3. 提交更改
4. 推送到分支
5. 创建Pull Request
## 📄 许可证
本项目采用MIT许可证。
## 📞 支持
如有问题,请联系:
- 项目负责人:张翔
- 邮箱:zhangxiang@novalon.com
## 🔄 更新日志
### v1.0.0 (2024-03-24)
- ✅ 初始版本发布
- ✅ 实现完整的E2E测试框架
- ✅ 实现UAT测试用例
- ✅ 实现自动化测试报告
- ✅ 实现服务器自动管理
- ✅ 实现测试数据管理
---
**注意:** 本测试框架仅用于开发和测试环境,请勿在生产环境中运行。