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