18. 权限功能测试应该怎么测?
权限测试是业务系统里非常重要的一类测试。
很多系统页面看起来正常,但权限如果没控制好,就可能出现越权查看、越权修改、数据泄露等严重问题。
一、先区分功能权限和数据权限
权限一般分两类:
- 功能权限:能不能看菜单、点按钮、调用功能;
- 数据权限:能不能看到某些数据、操作某些数据。
比如普通员工能看到“我的订单”,但不能看到全公司的订单,这就是数据权限。
二、角色权限要按矩阵测试
测试前最好整理权限矩阵:
- 管理员;
- 普通用户;
- 部门主管;
- 审批人;
- 只读用户;
- 禁用用户。
每个角色对应哪些菜单、按钮、数据范围,都要明确。
没有权限矩阵,权限测试容易漏。
三、菜单和按钮只是第一层
页面权限要验证:
- 无权限菜单是否隐藏;
- 无权限按钮是否隐藏或禁用;
- 有权限按钮是否可操作;
- 切换角色后页面是否刷新权限;
- 权限变更后重新登录是否生效。
但只测页面不够,因为前端隐藏不等于后端安全。
四、接口权限才是重点
要测试:
- 无权限用户直接调用接口;
- 修改 URL 访问无权限页面;
- 普通用户调用管理员接口;
- 用户 A 修改用户 B 的数据;
- 删除接口是否校验权限;
- 导出接口是否校验权限。
权限必须在后端拦截,否则很容易被绕过。
五、数据权限要看范围
数据权限常见规则包括:
- 只能看自己的数据;
- 可以看本部门数据;
- 可以看本部门及下级部门数据;
- 可以看全部数据;
- 可以看被分配的数据。
测试时要准备不同部门、不同用户、不同归属的数据。
六、权限变更和缓存要测试
权限不是一成不变的。
要验证:
- 给用户新增权限后是否生效;
- 删除权限后是否立即失效;
- 用户角色变化后权限是否变化;
- 禁用用户后是否不能登录;
- 已登录用户权限被收回后旧 Token 是否还能操作;
- 权限缓存是否刷新。
很多系统权限问题都和缓存有关。
七、特殊场景也不能漏
还要关注:
- 超级管理员权限;
- 默认角色权限;
- 新建用户初始权限;
- 离职或禁用用户;
- 批量导入用户权限;
- 多角色用户权限合并规则;
- 审批人离职后的权限转移。
权限越复杂,越需要系统化测试。
八、面试回答模板
可以这样回答:
权限测试我会先区分功能权限和数据权限,并根据角色整理权限矩阵。页面层面验证菜单、按钮是否按权限展示;接口层面验证无权限用户是否能通过 URL 或接口绕过;数据层面验证用户只能查看和操作自己权限范围内的数据。同时还会测试权限新增、删除、角色变更、用户禁用和已登录状态下权限收回是否生效,避免权限缓存导致越权。
这个答案能体现你知道权限测试的核心风险。
九、下一步建议
权限测试建议准备三个角色:
- 管理员;
- 普通用户;
- 部门主管。
然后围绕菜单、按钮、接口和数据范围设计用例。
配套刷题:

