mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-10-09 02:57:35 +00:00
RuoYi-Vue3-FastAPI 项目测试套件
这是一个为 RuoYi-Vue3-FastAPI 项目创建的完整测试套件,使用 Playwright 进行端到端测试。测试环境已禁用验证码功能,以简化测试流程。
功能特性
- 使用默认方式手动启动前后端服务或
Docker Compose自动启动项目前后端服务 - 测试环境已禁用验证码功能
- 验证登录流程和认证机制
- 测试所有受保护的页面功能
- 验证未登录用户访问受保护页面时的重定向行为
依赖安装
pip install -r requirements.txt
playwright install
使用方法
方式一:默认方法
启动前端
cd ruoyi-fastapi-frontend
npm install
npm run dev
启动后端
cd ruoyi-fastapi-backend
pip install -r requirements.txt
python app.py --env=dev
运行测试
cd ruoyi-fastapi-test
pip install -r requirements.txt
python -m pytest -v
方式二:使用Docker
进入测试目录
cd ruoyi-fastapi-test
启动 Docker 服务
# MySQL版本
docker compose -f docker-compose.test.my.yml up -d --build
# PostgreSQL版本
docker compose -f docker-compose.test.pg.yml up -d --build
运行测试
pip install -r requirements.txt
python -m pytest -v
测试内容
登录测试
- 验证登录页面正常加载
- 验证登录流程(测试环境已禁用验证码)
- 测试认证后的页面访问
页面访问和功能测试
- 仪表盘页面
- 用户管理页面
- 角色管理页面
- 菜单管理页面
- 部门管理页面
- 岗位管理页面
- 字典管理页面
- 参数配置页面
- 通知公告页面
- 日志管理页面(操作日志、登录日志)
- 在线用户页面
- 定时任务页面
- 服务监控页面
- 数据监控页面
- 缓存监控页面
- 缓存列表页面
- 代码生成页面
- 系统接口页面
认证测试
- 验证未登录用户访问受保护页面时被重定向到登录页
- 验证登录后可以访问受保护页面
通用时间契约
time-contract 为本项目 Web、App 和缺少原生 Intl 的 App 实现提供相同的时间工具回归测试,覆盖 RFC 3339、日期合法性、epoch 单位、DST 缺失/重复时间和表单往返。固定时间样例用于验证边界行为,不依赖真实业务数据、数据库、浏览器、构建产物或 .cache 中预先生成的文件。
先按前端和 App 各自的依赖清单安装依赖,再从仓库根目录运行:
node ruoyi-fastapi-test/time-contract/run-host-timezones.mjs
脚本通过自身位置定位仓库,在 UTC、Asia/Shanghai 和 America/New_York 三个独立进程中执行;更换检出目录或从其他目录调用不影响路径解析。各工程中的测试入口负责导入自身时间工具,共享契约不写死本机绝对路径。
配置说明
使用 docker-compose.test.my.yml或docker-compose.test.pg.yml启动服务,默认前端端口为 80,后端端口为 9099。测试环境已禁用验证码功能。
注意事项
- 确保系统已安装 Docker 和 Docker Compose
- 确保端口
80和9099未被占用 - 首次运行时 Docker 镜像构建可能需要几分钟时间
- 测试使用默认管理员账户:用户名
admin,密码admin123