UNPKG

whistle.mock-plugins

Version:

Whistle 插件,用于快速创建 API 模拟数据

157 lines (127 loc) 4.78 kB
# 列宽拖动功能测试指南 ## 测试环境 - ✅ 依赖已安装(react-resizable@3.0.5) - ✅ 项目已构建(2025-11-06 15:03) - ✅ Whistle 服务已重启 ## 访问地址 打开浏览器访问:http://127.0.0.1:8899/ 或 http://10.181.134.20:8899/ ## 测试步骤 ### 1. 进入接口管理页面 1. 在 Whistle 管理界面中找到 mock-plugin 插件 2. 点击进入接口管理页面(InterfaceManagementV2) ### 2. 测试列宽拖动功能 #### 测试点 1:拖动调整列宽 1. 找到表格中的"当前响应"列 2. 将鼠标移动到"当前响应"列标题的右边缘 3. **预期结果**:光标应该变为调整大小的图标(↔️) 4. 按住鼠标左键并拖动 5. **预期结果** - 列宽随鼠标移动而变化 - 拖动手柄区域显示蓝色高亮 - 列内的下拉框(Select)宽度自动调整 #### 测试点 2:Select 下拉框自适应 1. 调整"当前响应"列的宽度(拖宽或拖窄) 2. 观察列内的下拉框 3. **预期结果** - 下拉框宽度始终占满整列 - 下拉框内容正常显示,不会溢出 - 点击下拉框,下拉菜单正确显示 #### 测试点 3:列宽持久化 1. 调整"当前响应"列的宽度到一个特定值(如 250px) 2. 刷新浏览器页面(F5 或 Cmd+R) 3. **预期结果** - 页面重新加载后,列宽保持为调整后的值 - 不会恢复到默认的 180px #### 测试点 4:重置列宽 1. 调整"当前响应"列的宽度 2. 点击表格右上角的"列设置"按钮 3. 点击"重置"按钮 4. **预期结果** - 列宽恢复到默认值 180px - 其他列配置也恢复到默认状态 #### 测试点 5:拖动视觉反馈 1. 将鼠标悬停在"当前响应"列的右边缘 2. **预期结果** - 显示一个灰色的竖线指示器 - 鼠标悬停时,指示器变为蓝色 - 拖动区域有半透明蓝色背景 ### 3. 边界情况测试 #### 测试点 6:最小宽度 1. 尝试将列宽拖到非常窄 2. **预期结果** - 列宽可以调整到很小(当前没有硬性限制) - Select 下拉框仍然可以正常点击和使用 #### 测试点 7:最大宽度 1. 尝试将列宽拖到非常宽 2. **预期结果** - 列宽可以调整到很宽(当前没有硬性限制) - 不会影响其他列的显示 #### 测试点 8:多次调整 1. 多次来回拖动调整列宽 2. **预期结果** - 每次调整都流畅响应 - 没有卡顿或延迟 - localStorage 正确更新 ### 4. 功能交互测试 #### 测试点 9:与其他功能的兼容性 1. 调整列宽后,测试以下功能: - 切换响应数据(点击下拉框选择不同的响应) - 排序功能(点击列标题排序) - 分页功能(切换页码) - 搜索功能(搜索接口) - 分组筛选(选择不同分组) 2. **预期结果** - 所有功能正常工作 - 列宽保持不变 #### 测试点 10:兼容旧数据 1. 清除浏览器的 localStorage(开发者工具 > Application > Local Storage) 2. 刷新页面 3. **预期结果** - 页面正常加载 - "当前响应"列显示默认宽度 180px - 没有控制台错误 ## 已知问题和限制 1. **没有最小/最大宽度限制**:当前实现允许列宽调整到任意大小 2. **仅支持"当前响应"列**:其他列暂不支持拖动调整 3. **桌面端优化**:主要针对鼠标操作,触摸屏可能需要额外配置 ## 测试结果记录 ### 测试环境信息 - 浏览器:__________ - 操作系统:__________ - 测试日期:__________ ### 测试结果 - [ ] 测试点 1:拖动调整列宽 - [ ] 测试点 2:Select 下拉框自适应 - [ ] 测试点 3:列宽持久化 - [ ] 测试点 4:重置列宽 - [ ] 测试点 5:拖动视觉反馈 - [ ] 测试点 6:最小宽度 - [ ] 测试点 7:最大宽度 - [ ] 测试点 8:多次调整 - [ ] 测试点 9:与其他功能的兼容性 - [ ] 测试点 10:兼容旧数据 ### 发现的问题 (如有问题,请在此记录) --- ## 调试技巧 ### 查看 localStorage 中的列宽配置 1. 打开浏览器开发者工具(F12) 2. 切换到 Console 标签 3. 输入以下命令查看配置: ```javascript JSON.parse(localStorage.getItem('interface-table-config')) ``` ### 手动设置列宽 ```javascript const config = JSON.parse(localStorage.getItem('interface-table-config')); config.columnWidths.currentResponse = 250; localStorage.setItem('interface-table-config', JSON.stringify(config)); location.reload(); ``` ### 清除列宽配置 ```javascript const config = JSON.parse(localStorage.getItem('interface-table-config')); delete config.columnWidths; localStorage.setItem('interface-table-config', JSON.stringify(config)); location.reload(); ```