4.3 KiB
4.3 KiB
新增学生功能验证测试
📋 测试概述
- 测试目的: 验证学生信息管理页面的新增功能是否正常工作
- 测试时间: 2025-01-15
- 修复内容: 权限配置统一化 + Vue语法兼容性修复
🔧 修复内容回顾
1. 权限标识统一化
- 修复前:
v-hasPermi="['xg-xx:student:add']" - 修复后:
v-hasPermi="['xg:studentInfo:add']" - 结果: 与后端Controller权限标识保持一致
2. Vue语法兼容性修复
- 修复前:
:visible.sync="dialogVisible"(Vue 2语法) - 修复后:
v-model="dialogVisible"(Vue 3语法) - 影响组件: 6个Dialog组件全部修复
3. 权限配置完善
- 创建学工管理主菜单 (menu_id: 1800)
- 创建学生信息管理页面 (menu_id: 1801)
- 创建9个功能按钮权限 (menu_id: 1811-1819)
🧪 验证步骤
步骤1: 检查权限配置
-- 验证权限菜单是否创建成功
SELECT menu_id, menu_name, perms, menu_type
FROM sys_menu
WHERE menu_id BETWEEN 1800 AND 1819
ORDER BY menu_id;
-- 验证角色权限是否分配成功
SELECT rm.role_id, rm.menu_id, m.menu_name, m.perms
FROM sys_role_menu rm
JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE rm.menu_id BETWEEN 1800 AND 1819
ORDER BY rm.menu_id;
步骤2: 前端页面验证
- 访问页面: 打开
http://localhost/xg-xx/studentInfo - 检查按钮: 确认"新增"按钮可见且可点击
- 点击测试: 点击"新增"按钮
- 弹窗验证: 确认编辑弹窗正常弹出
步骤3: 浏览器控制台检查
// 在浏览器控制台执行以下代码
// 1. 检查权限
console.log('用户权限:', this.$store.getters.permissions);
console.log('是否有新增权限:', this.$store.getters.permissions.includes('xg:studentInfo:add'));
// 2. 检查组件状态
console.log('编辑弹窗状态:', this.editVisible);
console.log('学生ID:', this.selectedStudentId);
console.log('是否编辑模式:', this.isEdit);
步骤4: 功能完整性测试
- 新增模式: 点击新增按钮,弹窗标题应为"新增学生信息"
- 表单初始化: 表单字段应为空白状态
- 数据验证: 尝试提交空表单,应有验证提示
- 关闭功能: 点击取消或关闭按钮,弹窗应正常关闭
✅ 预期结果
正常情况
- ✅ 新增按钮可见且可点击
- ✅ 点击后弹出编辑弹窗
- ✅ 弹窗标题显示"新增学生信息"
- ✅ 表单字段为空白状态
- ✅ 表单验证正常工作
- ✅ 弹窗可正常关闭
异常情况处理
- ❌ 如果按钮不可见: 检查权限配置
- ❌ 如果点击无反应: 检查Vue语法和JavaScript错误
- ❌ 如果弹窗不出现: 检查组件导入和注册
- ❌ 如果表单异常: 检查组件props和数据绑定
🔍 故障排除
权限问题
-- 检查用户是否有权限
SELECT u.user_name, r.role_name, m.menu_name, m.perms
FROM sys_user u
JOIN sys_user_role ur ON u.user_id = ur.user_id
JOIN sys_role r ON ur.role_id = r.role_id
JOIN sys_role_menu rm ON r.role_id = rm.role_id
JOIN sys_menu m ON rm.menu_id = m.menu_id
WHERE u.user_name = 'admin' AND m.perms = 'xg:studentInfo:add';
前端问题
// 检查组件是否正确导入
console.log('StudentEditDialog组件:', this.$options.components.StudentEditDialog);
// 检查数据绑定
console.log('editVisible:', this.editVisible);
console.log('selectedStudentId:', this.selectedStudentId);
console.log('isEdit:', this.isEdit);
Vue语法问题
<!-- 确认使用正确的Vue 3语法 -->
<el-dialog v-model="dialogVisible"> <!-- ✅ 正确 -->
<el-dialog :visible.sync="dialogVisible"> <!-- ❌ 错误 -->
📊 测试结果记录
测试环境
- 前端: Vue 3 + Element Plus
- 后端: Spring Boot 3.4.6
- 数据库: MySQL
- 浏览器: Chrome/Firefox
测试结果
- 权限配置验证
- 前端页面验证
- 控制台检查
- 功能完整性测试
问题记录
- 问题1: [记录发现的问题]
- 解决方案: [对应的解决方案]
- 验证结果: [修复后的验证结果]
📝 备注:
- 本测试文档用于验证新增学生功能的完整性
- 如发现问题,请记录详细的错误信息和解决步骤
- 测试通过后,可以进行后续的编辑、删除等功能测试