paper-burner/tests/phase2-test-guide.md

4.5 KiB
Raw Blame History

Phase 2 批注缓存测试指南

📍 测试位置

1. 打开历史详情页

应用首页 → 历史记录 → 点击任意一条记录

应该看到类似这样的页面:

┌─────────────────────────────────────────┐
│  [仅OCR] [仅翻译] [分块对比] [PDF对照]    │  ← 标签栏
├─────────────────────────────────────────┤
│                                         │
│  这是文档的内容...                       │
│  Lorem ipsum dolor sit amet...          │  ← 文本内容
│  这里有很多段落...                       │
│                                         │
│  Each paragraph is divided into         │
│  sub-blocks for annotation...          │  ← 每个句子是一个 sub-block
│                                         │
└─────────────────────────────────────────┘

2. 右键点击文本

在内容区域的任意文本上右键点击

例如:

  • 右键点击 "这是文档的内容"
  • 右键点击 "Lorem ipsum dolor"
  • 右键点击任何一个句子或段落

3. 应该看到的菜单

正常情况下会弹出批注菜单,类似:

┌──────────────────────┐
│ ✏️ 添加批注           │
│ 🎨 高亮显示           │
│ 📋 复制文本           │
│ ...                  │
└──────────────────────┘

⏱️ 性能测试重点

优化前:

  • 右键点击后 → 等待 200-300ms → 菜单弹出
  • 大文档1000+ 句子)延迟更明显

优化后:

  • 右键点击后 → 立即弹出< 10ms
  • 无论文档多大,延迟都很小

🧪 测试步骤

步骤 1: 检查缓存状态

在控制台运行:

console.log('AnnotationDOMCache:', window.AnnotationDOMCache);
console.log('已初始化?', window.AnnotationDOMCache?.initialized);
console.log('缓存数量:', window.AnnotationDOMCache?.subBlocks?.length);

步骤 2: 右键测试

  1. 在文本内容上右键点击
  2. 观察菜单弹出速度
  3. 观察控制台日志

预期日志(优化生效):

[跨子块检测] 开始检测跨子块选择...
[跨子块检测] 页面上的子块总数: 1247
  • 没有延迟
  • 没有警告

失败标志(优化未生效):

[AnnotationCache] 缓存未初始化,执行动态查询  ❌
  • 明显延迟
  • 看到警告

步骤 3: 性能对比(可选)

测量右键延迟

在控制台运行:

// 准备计时
document.addEventListener('contextmenu', function measureTime() {
    console.time('⏱️ 右键菜单响应时间');

    setTimeout(() => {
        console.timeEnd('⏱️ 右键菜单响应时间');
    }, 100);

    // 只测一次
    document.removeEventListener('contextmenu', measureTime);
}, { once: true });

console.log('✅ 已准备好测量。现在右键点击任意文本...');

然后右键点击文本。

预期输出

⏱️ 右键菜单响应时间: 2.5ms  ✅ 优化生效

失败输出

⏱️ 右键菜单响应时间: 285.3ms  ❌ 优化未生效

🔍 如果没有批注菜单怎么办?

情况 1: 看到浏览器默认的右键菜单

可能原因:

  • 页面还没加载完成
  • 批注功能没有启用
  • 右键点击的位置不对(点到了空白处)

解决方法

  • 等待页面完全加载
  • 确保点击的是文本内容,不是空白区域
  • 先选中一段文本,再右键点击

情况 2: 菜单没有弹出

检查

// 检查批注功能是否加载
console.log('annotation_logic.js 加载?', typeof annotationContextMenuElement !== 'undefined');

📝 测试清单

测试环境: _______________
测试日期: _______________

[ ] 1. 打开历史详情页
[ ] 2. 等待内容完全加载
[ ] 3. 控制台检查缓存状态
       - AnnotationDOMCache 存在? [ ]
       - 已初始化? [ ]
       - 缓存数量 > 0? [ ]
[ ] 4. 右键点击文本
[ ] 5. 菜单立即弹出(无延迟)
[ ] 6. 控制台没有"缓存未初始化"警告

测试结果:
- [ ] ✅ 所有检查通过,优化生效
- [ ] ⚠️ 部分检查失败
- [ ] ❌ 优化未生效

备注: _______________