search-syntax-pro/SHORTCUT_TEST_GUIDE.md
Zain 84a509b92d feat: 新增快捷键功能及多项优化
- 新增全局快捷键支持(Ctrl+Shift+F/Command+Shift+F)
- 添加快捷键命令类型定义(chrome-commands.d.ts)
- 实现版本管理工具(version.ts)
- 新增模板和快捷键相关类型定义
- 优化搜索表单组件支持外部控制高级选项
- 新增引擎选择器组件(EngineSelector)
- 改进全局样式和按钮样式
- 在设置页面新增快捷键配置选项
- 添加测试页面和调试工具
- 更新文档包括发布说明和测试指南

本次提交包含多项功能新增和优化,主要围绕快捷键功能的实现和用户体验提升。
2025-11-11 16:45:59 +08:00

317 行
7.4 KiB
Markdown

# 快捷键功能测试指南
## 测试环境准备
### 1. 加载扩展
```bash
# 1. 打开Chrome浏览器
# 2. 访问 chrome://extensions/
# 3. 启用"开发者模式"(右上角开关)
# 4. 点击"加载已解压的扩展程序"
# 5. 选择项目的 dist/ 目录
```
### 2. 检查扩展状态
- 扩展图标应显示在Chrome工具栏
- 扩展名称: SearchSyntax Pro
- 版本: 1.6.0
## 测试流程
### 阶段1: 全局快捷键测试
#### Test 1.1: Windows/Linux平台
**步骤**:
1. 在任意网页上
2. 按下 `Ctrl+Shift+F`
3. 观察popup是否打开
**预期结果**:
- ✅ popup立即打开
- ✅ 关键词输入框自动聚焦
- ✅ 无控制台错误
**常见问题**:
- 如果快捷键无响应,检查是否与其他扩展冲突
- 访问 chrome://extensions/shortcuts 查看快捷键是否正确注册
#### Test 1.2: macOS平台
**步骤**:
1. 在任意网页上
2. 按下 `Command+Shift+F`
3. 观察popup是否打开
**预期结果**: 同Test 1.1
#### Test 1.3: 快捷键冲突测试
**步骤**:
1. 访问 chrome://extensions/shortcuts
2. 查找"SearchSyntax Pro"
3. 验证快捷键显示为"Ctrl+Shift+F"或"Command+Shift+F"
4. 尝试修改为其他快捷键
5. 测试新快捷键是否生效
**预期结果**:
- ✅ 快捷键可以自定义
- ✅ 自定义后的快捷键能正常工作
### 阶段2: Popup内快捷键测试
#### Test 2.1: 搜索执行快捷键
**步骤**:
1. 打开popup
2. 输入关键词"测试"
3. 按下 `Ctrl+Enter`
**预期结果**:
- ✅ 立即执行搜索
- ✅ 在新标签页打开搜索结果
- ✅ popup自动关闭
#### Test 2.2: 模板选择器快捷键
**步骤**:
1. 打开popup
2. 按下 `Ctrl+Shift+T`
**预期结果**:
- ✅ 模板选择器模态窗口打开
- ✅ 显示可用模板列表
#### Test 2.3: 历史记录快捷键
**步骤**:
1. 执行至少一次搜索(生成历史记录)
2. 重新打开popup
3. 按下 `Ctrl+Shift+H`
**预期结果**:
- ✅ 历史记录面板自动滚动到视图内
- ✅ 显示之前的搜索记录
#### Test 2.4: 复制查询快捷键
**步骤**:
1. 打开popup
2. 输入关键词"测试"
3. 选择搜索引擎
4. 按下 `Ctrl+Shift+C`
5. 打开文本编辑器
6. 粘贴 `Ctrl+V`
**预期结果**:
- ✅ 生成的查询已复制到剪贴板
- ✅ 显示"已复制"提示
#### Test 2.5: 高级选项切换快捷键
**步骤**:
1. 打开popup
2. 按下 `Ctrl+Shift+A`
3. 再次按下 `Ctrl+Shift+A`
**预期结果**:
- ✅ 首次按下展开高级选项面板
- ✅ 再次按下折叠高级选项面板
#### Test 2.6: 关键词聚焦快捷键
**步骤**:
1. 打开popup
2. 点击其他输入框(如site输入框)
3. 按下 `Ctrl+K`
**预期结果**:
- ✅ 光标跳转到关键词输入框
#### Test 2.7: 清空表单快捷键
**步骤**:
1. 打开popup
2. 填写多个字段(keyword, site, fileType)
3. 按下 `Ctrl+L`
**预期结果**:
- ✅ 所有输入字段被清空
- ✅ 搜索引擎保持默认值
#### Test 2.8: 关闭popup快捷键
**步骤**:
1. 打开popup
2. 按下 `Escape`
**预期结果**:
- ✅ popup立即关闭
#### Test 2.9: 输入框导航快捷键
**步骤**:
1. 打开popup
2. 按下 `Tab` 多次
3. 按下 `Shift+Tab` 多次
**预期结果**:
- ✅ Tab按顺序聚焦到下一个输入框
- ✅ Shift+Tab按逆序聚焦到上一个输入框
- ✅ 聚焦循环(到最后一个后返回第一个)
#### Test 2.10: 快捷键帮助快捷键
**步骤**:
1. 打开popup
2. 按下 `?` 键(Shift+/)
**预期结果**:
- ✅ 快捷键帮助面板打开
- ✅ 显示所有可用快捷键列表
#### Test 2.11: 搜索引擎切换快捷键
**步骤**:
1. 打开popup
2. 依次按下 `Ctrl+1`, `Ctrl+2`, `Ctrl+3`, `Ctrl+4`, `Ctrl+5`
**预期结果**:
- ✅ 每次按下切换到对应的搜索引擎
- ✅ 搜索引擎选择器UI同步更新
### 阶段3: 边界情况测试
#### Test 3.1: 快速连续触发
**步骤**:
1. 快速连续按下 `Ctrl+Shift+F` 5次
**预期结果**:
- ✅ 不会打开多个popup
- ✅ 无控制台错误
#### Test 3.2: 快捷键冲突场景
**步骤**:
1. 在Google搜索页面打开popup
2. 测试所有快捷键是否正常工作
**预期结果**:
- ✅ 所有快捷键在搜索页面上正常工作
- ✅ 不会触发页面自身的快捷键
#### Test 3.3: 无效输入测试
**步骤**:
1. 打开popup
2. 不输入任何关键词
3. 按下 `Ctrl+Enter`
**预期结果**:
- ✅ 显示验证错误
- ✅ 不执行搜索
#### Test 3.4: 快捷键在模态窗口中
**步骤**:
1. 打开popup
2. 按下 `Ctrl+Shift+T` 打开模板选择器
3. 在模板选择器打开时按下 `Escape`
4. 再次按下 `Escape`
**预期结果**:
- ✅ 首次Escape关闭模板选择器
- ✅ 再次Escape关闭popup
## 调试技巧
### 查看快捷键注册状态
```javascript
// 在background控制台执行
chrome.commands.getAll((commands) => {
console.log('已注册快捷键:', commands)
})
```
### 查看快捷键事件
1. 打开popup
2. 按F12打开开发者工具
3. 切换到Console标签
4. 按下快捷键
5. 查看是否有"快捷键触发"日志
### 常见问题排查
#### 问题1: 全局快捷键无响应
**可能原因**:
- 快捷键被其他扩展占用
- 快捷键未正确注册
- 浏览器版本过低
**解决方法**:
1. 访问 chrome://extensions/shortcuts
2. 检查快捷键是否显示
3. 尝试更改为其他快捷键
#### 问题2: Popup内快捷键无响应
**可能原因**:
- shortcutManager初始化失败
- 事件监听器未正确注册
- 输入框聚焦导致快捷键被拦截
**解决方法**:
1. 查看控制台是否有错误
2. 检查shortcutManager.initialize()是否成功
3. 验证快捷键处理器是否注册
#### 问题3: 快捷键冲突
**可能原因**:
- 与Chrome内置快捷键冲突
- 与其他扩展快捷键冲突
- 与操作系统快捷键冲突
**解决方法**:
1. 更改为使用Ctrl+Shift+X组合
2. 在chrome://extensions/shortcuts中自定义
3. 禁用冲突的扩展
## 测试报告模板
### 测试结果记录
| 测试项 | 快捷键 | 预期结果 | 实际结果 | 状态 | 备注 |
|--------|--------|----------|----------|------|------|
| 全局快捷键 | Ctrl+Shift+F | popup打开 | | ☐ | |
| 执行搜索 | Ctrl+Enter | 执行搜索 | | ☐ | |
| 打开模板 | Ctrl+Shift+T | 模板选择器打开 | | ☐ | |
| 打开历史 | Ctrl+Shift+H | 历史记录显示 | | ☐ | |
| 复制查询 | Ctrl+Shift+C | 查询已复制 | | ☐ | |
| 切换高级 | Ctrl+Shift+A | 高级选项切换 | | ☐ | |
| 聚焦关键词 | Ctrl+K | 关键词输入框聚焦 | | ☐ | |
| 清空表单 | Ctrl+L | 表单清空 | | ☐ | |
| 关闭popup | Escape | popup关闭 | | ☐ | |
| 输入框导航 | Tab/Shift+Tab | 聚焦切换 | | ☐ | |
| 快捷键帮助 | ? | 帮助面板显示 | | ☐ | |
| 切换引擎1 | Ctrl+1 | 引擎切换 | | ☐ | |
| 切换引擎2 | Ctrl+2 | 引擎切换 | | ☐ | |
### 发现的问题
1. 问题描述:
- 重现步骤:
- 预期行为:
- 实际行为:
- 严重程度: [高/中/低]
## 性能测试
### 快捷键响应时间
1. 打开popup
2. 记录从按下快捷键到执行动作的时间
3. 期望: < 100ms
### 内存占用
1. 打开Chrome任务管理器(Shift+Esc)
2. 查找"扩展: SearchSyntax Pro"
3. 记录内存占用
4. 期望: < 30MB
## 测试完成标准
- ✅ 所有快捷键功能测试通过
- ✅ 无控制台错误或警告
- ✅ 在不同操作系统上测试通过
- ✅ 快捷键响应时间 < 100ms
- ✅ 无内存泄漏
- ✅ 用户体验流畅
## 下一步
测试完成后:
1. 记录所有发现的问题
2. 评估问题严重程度
3. 创建issue或bug报告
4. 优先修复高严重性问题
5. 进行回归测试