西藏巴青项目

大屏免密登录测试用例.md 3.5KB

大屏 — 免密登录 — 测试用例

接口 Base Path/bigScreen(含 context-path、网关前缀须补齐)。登录相关接口 免鉴权;登录成功后看板接口鉴权同若依 Authorization Token。


1. 测试范围

类型 覆盖
单元测试 RSA 加解密往返、UUID 格式校验、Service 启用/公钥、Controller 路由
接口测试 公钥获取、Header/Body 登录、未启用、错误密文
UI 测试 ruoyi-screen 自动登录(待前端对接)

代码引用ScreenLoginRsaSupportTestScreenLoginServiceTestScreenLoginControllerApiTest


2. 单元测试

编号 模块 场景 工具 前置 步骤 预期
DP-ML-UT-001 RSA 加解密往返 JUnit5 配置密钥对 encrypt(uuid)decrypt 明文等于原 UUID
DP-ML-UT-002 RSA UUID 合法 JUnit5 isValidUuid(标准 UUID) true
DP-ML-UT-003 RSA UUID 非法 JUnit5 isValidUuid("hello") / null false
DP-ML-UT-004 RSA 解密非 UUID 明文 JUnit5 加密 "hello" 解密后 isValidUuid false
DP-ML-UT-005 Service 未启用 JUnit5 enabled=false login(any) ServiceException
DP-ML-UT-006 Service 获取公钥 JUnit5 enabled=true 且密钥已配 getRsaPublicKey() 返回配置公钥

3. 接口测试

编号 场景 工具 前置 请求 预期
DP-ML-API-001 获取公钥 Postman/curl enabled=true GET /bigScreen/publicKey code=200data.publicKey 非空
DP-ML-API-002 未启用 Postman enabled=false GET /bigScreen/publicKey 失败;提示未启用
DP-ML-API-003 Header 登录 Postman 已启用;有效密文 POST /bigScreen/login,头 X-Screen-Token code=200;含 token
DP-ML-API-004 Body 登录 Postman 已启用;有效密文 POST /bigScreen/login{"token":"..."} code=200;含 token
DP-ML-API-005 密文为空 Postman 已启用 POST /bigScreen/login 无 token 失败;大屏登录认证失败
DP-ML-API-006 密文非法 Postman 已启用 token=not-valid-cipher 失败;大屏登录认证失败
DP-ML-API-007 专用账号不存在 Postman username 指向不存在用户 有效密文登录 失败;大屏专用账号不存在
DP-ML-API-007a 账号已删除 Postman del_flag=2 有效密文登录 失败;user.password.delete
DP-ML-API-007b 账号已停用 Postman status=1 有效密文登录 失败;user.blocked
DP-ML-API-008 登录后访问看板 Postman 登录成功 GET /bigScreen/home/dashboard?statYear=2026,带 Authorization 200(JWT 含 bigScreen:*:*

生成有效密文(联调)

  1. GET /bigScreen/publicKeypublicKey
  2. 前端 JSEncrypt 或脚本用公钥加密 crypto.randomUUID()
  3. 将密文填入 DP-ML-API-003/004

4. 安全与约束

编号 场景 预期
DP-ML-SEC-001 私钥不出现在公钥接口响应 data 仅含 publicKey
DP-ML-SEC-002 登录接口不校验客户端 IP 任意 IP 可调用(仍须有效密文)
DP-ML-SEC-003 看板接口未带 JWT GET .../dashboard 返回 401

5. 修订记录

版本 说明
1.0 初版:RSA 公钥 + UUID 加密登录;路径 GET /bigScreen/publicKeyPOST /bigScreen/login