feat: enhance web extension with export functionality and utility improvements
Some checks failed
Tests / Tests (push) Has been cancelled
ESLint Check / ESLint Check and Report Upload (push) Has been cancelled
Prettier Check / Format Check (push) Has been cancelled
Prettier Check / Format Code (push) Has been cancelled
ESLint Check / Build Base for Bundle Size Comparison (push) Has been cancelled

- Add export functionality to SessionList and Player pages
- Add new utility modules: dataOperations, format, path, settings
- Update manifest with export and download permissions
- Enhance storage utility with new data operations
- Add various test scripts and documentation files
This commit is contained in:
xugp
2026-04-16 10:15:10 +08:00
parent 2a7084db5b
commit 71438691b3
38 changed files with 11241 additions and 2338 deletions

View File

@@ -0,0 +1,78 @@
# RRWeb 插件导出功能测试指南
## 🎯 测试目标
验证 JSON 导出功能是否能够完整导出录制的用户操作信息
## 📋 测试步骤
### 1. 安装更新后的插件
1. 在 Chrome 浏览器中打开 `chrome://extensions/`
2. 找到现有的 RRWeb 插件
3. 点击"删除"按钮移除旧版本
4. 点击"加载已解压的扩展程序"
5. 选择 `C:\Users\xgp\projects\rrweb\packages\web-extension\dist\chrome` 文件夹
### 2. 录制测试数据
1. 点击浏览器工具栏的 RRWeb 图标
2. 点击"开始录制"
3. 在打开的页面中进行以下操作:
- 点击"随机变色"按钮几次
- 点击"添加计数器"按钮几次
- 点击"测试弹窗"按钮
- 在输入框中输入一些文字
- 点击一些页面上的其他元素
4. 点击"停止录制"
### 3. 验证录制历史
1. 再次点击 RRWeb 图标
2. 点击"录制历史"按钮
3. 确认能看到刚才录制的会话列表
4. 查看会话的基本信息(名称、时间、事件数量等)
### 4. 测试 JSON 导出功能
#### 单个会话导出测试:
1. 在录制历史列表中,找到刚才录制的会话
2. 点击该会话的复选框选中它
3. 点击"导出"按钮
4. 选择"JSON"格式
5. 确认下载的 JSON 文件
#### 多个会话导出测试:
1. 选择多个会话(复选框)
2. 点击"导出"按钮
3. 选择"JSON"格式
4. 确认下载的合并 JSON 文件
### 5. 验证导出文件
1. 打开下载的 JSON 文件
2. 检查文件内容应该包含:
- `session` 对象:包含会话元数据
- `events` 数组:包含所有录制的事件
- `metadata` 对象:包含导出时间、版本、事件数量等信息
### 6. 检查数据完整性
1. 确认 `events` 数组不为空
2. 确认每个事件都有正确的 `timestamp``type``data` 属性
3. 确认事件数据完整反映了你的操作
## 🔍 故障排除
### 如果导出功能不工作:
1. 检查浏览器控制台是否有错误信息F12
2. 确保 IndexedDB 中的数据正确存储
3. 检查网络连接是否正常
4. 尝试刷新页面重新测试
### 如果录制历史为空:
1. 确认录制操作成功完成
2. 检查 IndexedDB 数据是否正确保存
3. 尝试清除浏览器数据后重新录制
## 📁 文件存储位置
- 录制数据存储在浏览器的 IndexedDB 中
- 导出的 JSON 文件默认下载到浏览器的默认下载文件夹
## ✅ 验收标准
- 能够成功导出包含完整录制数据的 JSON 文件
- 单个会话和多个会话的 JSON 导出都能正常工作
- 导出的 JSON 文件包含完整的会话信息和所有事件数据