Skip to content

自动化测试

仓库根目录的 autotest/Python + pytest + httpx 对真实跑着的服务做外层接口验收,覆盖登录、权限等核心主线流程。

它不替代 backend/core 里的单元测试,而是在架构变更、数据库变更、部署方式调整之后,快速重跑一遍,确认关键路径仍然可用。


定位

层次放哪测什么
单元测试backend/core框架与工具类,可 Mock、可 H2
自动化测试autotest/真实环境上的主线接口(登录、权限、后续定时任务等)

原则很简单:核心流程优先,不做全站 CRUD 铺量。当前已覆盖登录与权限;定时任务等主线能力会按同样方式陆续补上。


何时重跑

下列变更后建议跑一遍 autotest

  • 认证、权限、会话等核心链路有改动
  • 数据库结构或种子数据调整
  • 本地单体 / 微服务等部署形态切换后做冒烟确认
  • 合并前想确认「还能登录、权限还生效」

怎么跑

前置:本机 Redis、PostgreSQL(molandev_base)、已启动的 standalone-service(默认 http://127.0.0.1:9099),并安装 uv

bash
cd autotest
cp .env.example .env   # 按需改 BASE_URL / 账号 / DB / Redis
uv sync
uv run pytest

更细的账号约定、演示模式注意、环境变量说明见仓库根目录 autotest/README.md

演示模式

molandev.demo.enabled=true,增删改会被拦截,写测会自动 skip。跑全量用例前请关闭演示模式。


当前覆盖

方向内容
登录成功 / 错密 / 不存在 / 空参、禁用启用、登出、改密、错密锁定、会话 TTL、多端互踢、密码过期策略等
权限未登录 / 无权限 / 有权限、角色菜单变更与 /sys/me/funcs 缓存刷新、menus·funcs 与绑定一致、角色挂用户不可删
字典基础 list / CRUD(冒烟)

请求鉴权头:Admin-Token


约定(避免脏数据)

  • 管理员.env 里的 ADMIN_ACCOUNT / ADMIN_PASSWORD,用于功能冒烟与造数
  • 临时用户 / 角色autotest_u_*autotest_r_*,用例结束删除
  • 全局策略:登录策略、账户策略测前备份、测后还原
  • 精细断言:锁定时间等查 PostgreSQL;token TTL 等查 Redis

后续计划

在登录、权限之外,继续补定时任务等其它核心主线,目标始终是:改完架构、库表或部署方式后,一键确认关键流程没断。