4.2 KiB
4.2 KiB
登录功能测试用例
版本: v1.0 | 日期: 2026-07-06 | 状态: 待执行 依据文档: PRD v1.2 §4.5 身份认证与统一入口 测试环境: 本地开发环境
1. 测试范围
| 模块 | 接口 | 说明 |
|---|---|---|
| 企微免密登录 | /api/auth_wecom/jsdk-login |
企微JS-SDK免认证登录 |
| 账号密码登录 | /api/agents/login |
坐席/管理员账号密码+OTP登录 |
| MFA验证 | /api/mfa/verify |
OTP验证码验证 |
2. 前置条件
2.1 测试账号
| 角色 | user_id | 密码 | MFA状态 | 说明 |
|---|---|---|---|---|
| 坐席 | sxn |
admin123 |
已绑定 | IT支持组组长 |
| 管理员 | sxn |
admin123 |
已绑定 | 同上,具有admin权限 |
| 普通员工 | test_user |
- | 未绑定 | 仅user角色 |
2.2 环境要求
- 后端服务运行在
http://127.0.0.1:8000 - 前端服务:坐席端
http://127.0.0.1:5177,管理后台http://127.0.0.1:5178 - Redis 服务正常运行
- PostgreSQL/SQLite 数据库正常运行
3. 测试用例
3.1 企微免密登录 (/jsdk-login)
| TC_ID | 测试场景 | 前置条件 | 测试步骤 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|---|---|
| JSDK-01 | 企微用户具有坐席角色,免密登录 | user_id 具有 agent 角色 | 1. 前端调用 jsdk-login 传入 userid 2. 后端查询角色列表 |
返回 token 和 roles=["agent"] | 待测试 | |
| JSDK-02 | 企微用户具有管理员角色,免密登录 | user_id 具有 admin 角色 | 同上 | 返回 token 和 roles=["admin"] | 待测试 | |
| JSDK-03 | 企微用户具有坐席+管理员角色 | user_id 同时具有 agent 和 admin | 同上 | 返回 token 和 roles=["admin","agent"] | 待测试 | |
| JSDK-04 | 企微用户仅具有user角色 | user_id 只有 user 角色 | 同上 | 返回 403 错误:"您没有坐席或管理员权限" | 待测试 | |
| JSDK-05 | 企微用户无任何角色 | user_id 不在 user_roles 表 | 同上 | 返回 403 错误 | 待测试 |
3.2 账号密码登录 (/agents/login)
| TC_ID | 测试场景 | 前置条件 | 测试步骤 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|---|---|
| PWD-01 | 正确账号密码+OTP登录 | 坐席账号、已绑定MFA | 1. 输入正确账号密码 2. 点击登录 3. 输入正确OTP |
返回 token,进入工作台 | 待测试 | |
| PWD-02 | 正确账号密码+错误OTP | 坐席账号、已绑定MFA | 1. 输入正确账号密码 2. 点击登录 3. 输入错误OTP |
返回错误:"OTP验证码错误" | 待测试 | |
| PWD-03 | 正确账号密码+无OTP | 坐席账号、已绑定MFA | 1. 输入正确账号密码 2. 点击登录(不输入OTP) |
返回 require_otp: true,提示输入OTP | 待测试 | |
| PWD-04 | 错误账号 | 不存在的账号 | 输入错误的user_id | 返回错误:"用户不存在" | 待测试 | |
| PWD-05 | 错误密码 | 正确的user_id,错误密码 | 输入错误的password | 返回错误:"本地密码错误" | 待测试 | |
| PWD-06 | 账号密码登录(未绑定MFA) | 坐席账号、未绑定MFA | 输入正确的账号密码 | 直接返回 token,无需OTP | 待测试 |
3.3 MFA 验证
| TC_ID | 测试场景 | 前置条件 | 测试步骤 | 预期结果 | 实际结果 | 状态 |
|---|---|---|---|---|---|---|
| MFA-01 | 正确OTP验证码 | 已绑定MFA的坐席 | 调用 /api/mfa/verify | 返回验证成功 | 待测试 | |
| MFA-02 | 错误OTP验证码 | 已绑定MFA的坐席 | 输入错误的OTP | 返回验证失败 | 待测试 | |
| MFA-03 | 已验证状态(30分钟内) | 之前已通过OTP验证 | 再次调用需要MFA的接口 | 无需再次OTP | 待测试 |
4. 执行记录
| 执行日期 | 测试人员 | 环境 | 备注 |
|---|---|---|---|
| 2026-07-06 | 本地开发环境 | 首轮测试 |
5. 缺陷记录
| 缺陷ID | 对应TC | 描述 | 严重程度 | 状态 |
|---|---|---|---|---|
6. 修订历史
| 版本 | 日期 | 变更内容 | 修改人 |
|---|---|---|---|
| v1.0 | 2026-07-06 | 初始版本 | Claude |