You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/scripts/tests/README.md

2.8 KiB

测试脚本说明

本目录包含 VBase 的集成测试脚本,使用 bash + curl 测试 API 功能。

目录结构

scripts/tests/
├── README.md              # 本说明文件
├── lib.sh                 # 公共函数库
├── 01_basic_auth.sh       # 基础认证测试
├── 02_user_permission.sh  # 用户权限测试
├── 03_org_permission.sh   # 组织权限测试
└── run_all.sh             # 运行所有测试

前置条件

  1. 服务必须已启动:

    go run cli/main.go -db.type=sqlite -db.dsn /tmp/vb.sqlite -p 4000
    
  2. 数据库已初始化(如需要可以删除旧数据库):

    rm /tmp/vb.sqlite
    
  3. 依赖工具:

    • curl
    • jq (JSON 解析)

测试脚本说明

lib.sh

公共函数库,包含:

  • check_success() / check_fail() - 检查结果
  • check_http_code() - 检查 HTTP 状态码
  • register_user() - 注册用户
  • login_user() - 登录用户
  • api_get() / api_post() / api_patch() / api_delete() - API 请求封装
  • create_org() - 创建组织
  • update_org() - 更新组织
  • add_org_member() - 添加组织成员

01_basic_auth.sh

测试内容:基础认证流程

  • 用户注册
  • 用户登录
  • 获取当前用户信息
  • 修改自己的用户信息
  • 修改密码
  • Token 刷新
  • 用户登出

02_user_permission.sh

测试内容:用户级权限控制

  • 第一个用户注册(自动成为 admin
  • 第二个用户注册(普通 user
  • user 可以修改自己的信息
  • user 不能修改 admin 的信息
  • admin 可以修改任意用户信息

03_org_permission.sh

测试内容:组织权限控制

  • admin 创建组织
  • user 不能修改他人创建的组织
  • admin 邀请 user 加入组织
  • 普通成员不能修改组织信息
  • 只有 admin/owner 可以修改组织

run_all.sh

功能:运行所有测试

  • 按顺序执行所有测试脚本
  • 遇到错误时停止
  • 输出测试摘要
  • 统一时间戳避免冲突

使用方法

运行单个测试

# 基础认证测试
cd scripts/tests
bash 01_basic_auth.sh

# 用户权限测试
bash 02_user_permission.sh

# 组织权限测试
bash 03_org_permission.sh

运行所有测试

cd scripts/tests
bash run_all.sh

测试环境变量

变量 默认值 说明
BASE_URL http://localhost:4000 API 基础地址
TEST_TIMESTAMP 自动生成 测试时间戳,用于生成唯一用户名

注意事项

  1. 测试脚本会创建真实数据,建议在测试数据库上运行
  2. 测试失败时会立即退出(set -e
  3. 每次运行使用不同的时间戳,避免用户名冲突