Files
web-Iot/docs/越权-冲突-超时测试记录.md
2026-08-10 13:33:06 +08:00

4.8 KiB
Raw Permalink Blame History

越权 / 冲突 / 超时测试记录

项目 内容
文档编号 TR-02
文档名称 越权 / 冲突 / 超时测试记录
版本 V1.0
测试阶段 Alpha 安全与边界测试
测试日期 2026-08-10
被测系统 设备接入服务 Alpha、状态服务 Alpha、命令服务 Alpha
关联文档 DOC-08、DOC-09、控制会话状态机、命令状态机

1. 测试说明

本记录覆盖三类边界场景:

类别 说明 关注点
越权(AUTH) 未授权/越权访问设备与命令资源 RBAC、设备归属、会话抢占权限
冲突(CONFLICT) 并发命令、重复回传、状态非法流转 互斥规则、幂等性、状态机守卫
超时(TIMEOUT) 心跳/命令/会话/握手超时 超时判定、自动重试、资源释放

2. 越权测试记录(AUTH-*)

用例 前置 步骤 预期 实际 结果
AUTH-01 未登录访问设备列表 无 token GET /api/devices 401 拒绝 401 拒绝 ✅
AUTH-02 viewer 下发控制命令 viewer 角色会话 POST /api/commands (move) 403 无控制权限 403 拒绝 ✅
AUTH-03 操作员控制非本场站设备 操作员 A,设备属场站 B 下发命令至场站 B 设备 403 越权拒绝 403 拒绝 ✅
AUTH-04 普通用户抢占已有会话 设备已被操作员 B 控制 普通用户申请控制权 403 设备被占用 403 拒绝 ✅
AUTH-05 admin 抢占已有会话 设备被操作员 B 控制 admin 申请控制权 抢占成功,原会话收到 PRECEDED 关闭 抢占成功,原会话关闭 ✅
AUTH-06 伪造设备心跳 设备 A 的 secret 未知 用错误 secret 上报心跳 401 拒绝 401 拒绝(校验 secret) ✅
AUTH-07 查询他人创建的命令 命令属用户 B 用户 A GET /api/commands/:id 403 无权查看 403 拒绝 ✅

3. 冲突测试记录(CONFLICT-*)

用例 前置 步骤 预期 实际 结果
CONFLICT-01 同设备并发互斥命令 设备执行 move(EXECUTING) 再下发 task_start 40902 设备忙 40902 拒绝 ✅
CONFLICT-02 终态命令重复回传结果 命令已 SUCCEEDED 再次 POST result 409 终态不可回传 409 拒绝 ✅
CONFLICT-03 终态命令重复 ACK 命令已 SUCCEEDED 再次 POST ack 409 终态不可 ACK 409 拒绝 ✅
CONFLICT-04 取消执行中命令 命令 EXECUTING POST cancel 409 执行态不可取消 409 拒绝 ✅
CONFLICT-05 重复注册设备 设备已注册 再次 register 409 已注册 409 拒绝 ✅
CONFLICT-06 双操作员同时申请控制权 无会话 同时 AUTH(非 admin) 仅 1 人成功,另一人 403 1 成功 1 拒绝 ✅
CONFLICT-07 重试与超时竞态 命令即将超时 超时瞬间手动 retry 状态机保证不双写;以先到者为准 未出现状态错乱 ✅

4. 超时测试记录(TIMEOUT-*)

用例 前置 步骤 预期 实际 结果
TIMEOUT-01 心跳超时离线 设备心跳周期 30s 停止心跳 70s 设备自动置 offline 70s 后 offline ✅
TIMEOUT-02 命令 ACK 超时 下发命令(30s 超时) 设备不 ACK 自动重试 1 次后 TIMEOUT TIMEOUT(events 含 auto_retry) ✅
TIMEOUT-03 命令执行超时 命令已 ACK 设备不回传结果 30s 后 TIMEOUT TIMEOUT ✅
TIMEOUT-04 超时命令手动重试 命令 TIMEOUT POST retry 重新 SENT 并重新计时 SENT,定时器重置 ✅
TIMEOUT-05 会话握手超时 客户端 AUTH 后不响应 等待 5s 会话回 IDLE 并释放 回 IDLE ✅
TIMEOUT-06 会话保活超时 会话 ESTABLISHED 停止保活帧 30s 会话 SUSPENDED→CLOSED CLOSED(closedReason=timeout) ✅
TIMEOUT-07 挂起会话恢复超时 会话 SUSPENDED 等待 30s 不恢复 CLOSED,未终态命令 CANCELLED CLOSED,命令取消 ✅

5. 回归结论

类别 用例数 通过 失败 通过率
越权 7 7 0 100%
冲突 7 7 0 100%
超时 7 7 0 100%
合计 21 21 0 100%

遗留说明:

  • 越权类用例中 RBAC 会话抢占、设备归属校验由控制会话层执行,Alpha 三服务以 token 占位校验实现,Beta 需接入统一认证网关(SSO)。
  • TIMEOUT-02/03 的自动重试次数可配置(maxRetries),测试按默认 1 次执行。

变更记录

版本 日期 变更内容 作者
V1.0 2026-08-10 初稿:越权/冲突/超时三类 21 用例全量通过 测试组