镜像自地址
https://github.com/lhly/search-syntax-pro.git
已同步 2026-10-20 14:27:47 +08:00
- 新增全局快捷键支持(Ctrl+Shift+F/Command+Shift+F) - 添加快捷键命令类型定义(chrome-commands.d.ts) - 实现版本管理工具(version.ts) - 新增模板和快捷键相关类型定义 - 优化搜索表单组件支持外部控制高级选项 - 新增引擎选择器组件(EngineSelector) - 改进全局样式和按钮样式 - 在设置页面新增快捷键配置选项 - 添加测试页面和调试工具 - 更新文档包括发布说明和测试指南 本次提交包含多项功能新增和优化,主要围绕快捷键功能的实现和用户体验提升。
162 行
3.7 KiB
Markdown
162 行
3.7 KiB
Markdown
# 第二轮优化测试指南
|
||
|
||
## 快速测试清单
|
||
|
||
### 测试环境
|
||
- Chrome 浏览器 (版本 88+)
|
||
- 已加载 `dist/` 目录作为扩展程序
|
||
|
||
---
|
||
|
||
## P0 测试: targetEngine 持久化
|
||
|
||
### 测试步骤
|
||
1. 打开扩展设置页面 (chrome-extension://[id]/src/options/index.html)
|
||
2. 找到"引擎切换"分组下的任意快捷键(如 Ctrl+1)
|
||
3. 点击"编辑"按钮
|
||
4. 修改"目标搜索引擎"(如从百度改为谷歌)
|
||
5. 点击"保存"
|
||
6. **刷新设置页面**
|
||
7. 验证:目标引擎是否保持为谷歌(而非回到百度)
|
||
|
||
### 期望结果
|
||
✅ targetEngine 修改在刷新后依然保留
|
||
✅ 控制台无错误信息
|
||
|
||
### 失败现象(优化前)
|
||
❌ 刷新后 targetEngine 恢复为默认值
|
||
❌ 用户修改丢失
|
||
|
||
---
|
||
|
||
## P1 测试: 性能优化验证
|
||
|
||
### 测试步骤
|
||
1. 打开 Chrome DevTools (F12)
|
||
2. 切换到"Console"标签
|
||
3. 打开扩展设置页面
|
||
4. 观察控制台输出
|
||
|
||
### 期望结果
|
||
✅ 无 "未找到快捷键ID" 警告(除非数据真的损坏)
|
||
✅ 页面加载快速(无明显延迟)
|
||
✅ 切换编辑状态响应迅速
|
||
|
||
### 性能对比
|
||
- 优化前: 加载时执行 ~225 次字符串比较
|
||
- 优化后: 加载时执行 ~15 次 Map 查找(O(1))
|
||
|
||
---
|
||
|
||
## P2 测试: 综合功能测试
|
||
|
||
### 测试场景1: 修改快捷键
|
||
1. 编辑任意快捷键(如"执行搜索"从 Ctrl+Enter 改为 Alt+Enter)
|
||
2. 保存后验证显示正确
|
||
3. 刷新页面验证持久化
|
||
|
||
### 测试场景2: 启用/禁用快捷键
|
||
1. 切换任意快捷键的启用开关
|
||
2. 验证状态立即更新
|
||
3. 刷新页面验证持久化
|
||
|
||
### 测试场景3: 重置快捷键
|
||
1. 修改某个快捷键
|
||
2. 点击"重置"按钮
|
||
3. 验证恢复为默认值
|
||
|
||
### 测试场景4: 冲突检测
|
||
1. 尝试将两个快捷键设置为相同按键
|
||
2. 验证显示冲突提示
|
||
3. 验证无法保存冲突的快捷键
|
||
|
||
---
|
||
|
||
## 调试技巧
|
||
|
||
### 查看持久化数据
|
||
在 DevTools Console 中执行:
|
||
```javascript
|
||
chrome.storage.local.get('custom_shortcuts', (result) => {
|
||
console.log('Saved shortcuts:', result.custom_shortcuts);
|
||
});
|
||
```
|
||
|
||
### 清除所有自定义快捷键
|
||
```javascript
|
||
chrome.storage.local.remove('custom_shortcuts', () => {
|
||
console.log('Cleared all custom shortcuts');
|
||
location.reload();
|
||
});
|
||
```
|
||
|
||
### 验证 ID 映射
|
||
在 ShortcutSettings 组件加载时,检查控制台是否有警告:
|
||
```
|
||
⚠️ [ShortcutSettings] 未找到快捷键ID: key="...", action="..."
|
||
```
|
||
如果有此警告,说明数据不一致,需要检查配置。
|
||
|
||
---
|
||
|
||
## 自动化验证
|
||
|
||
运行验证脚本:
|
||
```bash
|
||
node verify-optimization.mjs
|
||
```
|
||
|
||
期望输出:
|
||
```
|
||
✅ saveCustomShortcuts 方法已包含 targetEngine 比较逻辑
|
||
✅ 已添加 updateShortcutEngine 专用方法
|
||
✅ 已添加 createShortcutIdMap 辅助函数
|
||
...
|
||
📊 质量评分: 90%+
|
||
```
|
||
|
||
---
|
||
|
||
## 回归测试
|
||
|
||
确保优化没有破坏现有功能:
|
||
- ✅ 快捷键在 popup 中正常触发
|
||
- ✅ 快捷键帮助面板正常显示
|
||
- ✅ 所有引擎切换快捷键正常工作
|
||
- ✅ Tab 导航正常工作
|
||
- ✅ Escape 关闭面板正常工作
|
||
|
||
---
|
||
|
||
## 已知限制
|
||
|
||
1. 修改的 targetEngine 只影响设置显示,实际引擎切换逻辑需要在 popup 中实现
|
||
2. 快捷键冲突检测只在同一作用域内生效
|
||
3. 全局快捷键 (Ctrl+Shift+F) 由 Chrome 扩展 API 管理,无法在设置中修改
|
||
|
||
---
|
||
|
||
## 问题反馈
|
||
|
||
如果发现问题,请收集以下信息:
|
||
1. Chrome 版本
|
||
2. 控制台错误信息
|
||
3. 重现步骤
|
||
4. 期望行为 vs 实际行为
|
||
|
||
---
|
||
|
||
## 测试签署
|
||
|
||
测试完成后,请确认以下项目:
|
||
- [ ] P0: targetEngine 持久化正常
|
||
- [ ] P1: 性能优化无警告
|
||
- [ ] P2: 所有功能正常工作
|
||
- [ ] 回归测试通过
|
||
- [ ] 无控制台错误
|
||
|
||
**测试人员**: _____________
|
||
**测试日期**: _____________
|
||
**测试结果**: ✅ 通过 / ❌ 失败
|
||
**备注**: _________________
|