PDF Stamper Phase 5 测试计划
测试版本: v1.5.0
测试日期: 2026-04-03
测试范围: Phase 5 所有新增功能
测试环境
| 项目 |
要求 |
| 浏览器 |
Chrome 120+, Firefox 120+, Safari 17+ |
| 测试文件 |
10页PDF, 100页PDF, 500页PDF |
| 内存限制 |
最小 4GB 可用内存 |
| 存储 |
localStorage 可用 |
1. 批量操作测试 (Batch Operations)
1.1 多页选择
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| Ctrl+Click 单选 |
按住 Ctrl 点击缩略图 3, 5, 7 |
仅 3, 5, 7 页显示蓝色边框 |
[ ] |
| Shift+Click 范围 |
点击第2页,Shift+点击第6页 |
2-6页全部选中(共5页) |
[ ] |
| 全选按钮 |
点击"全选" |
所有页面被选中 |
[ ] |
| 清除选择 |
点击"清除选择" |
所有页面取消选中 |
[ ] |
| 连续 Shift+Click |
点击第3页 -> Shift+点击第8页 -> Shift+点击第1页 |
1-8页全部选中 |
[ ] |
| 切换选中状态 |
Ctrl+Click 第2页(已选中)-> Ctrl+Click 第2页(取消) |
第2页从选中变为未选中 |
[ ] |
1.2 批量添加印章
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 无选中页添加 |
不选择任何页面,点击"批量添加印章" |
提示"请先选择要添加印章的页面" |
[ ] |
| 无印章添加 |
选中3页,但未选择印章图片,点击"批量添加印章" |
提示"请先选择印章图片" |
[ ] |
| 选中3页添加 |
选中3页,选择印章,点击"批量添加印章" |
在3页中心位置添加印章,显示进度 |
[ ] |
| 全选批量添加 |
全选20页,批量添加印章 |
所有20页都添加印章 |
[ ] |
| 重复添加 |
对同一页连续批量添加2次 |
该页有2个重叠印章 |
[ ] |
1.3 批量删除印章
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 无选中页删除 |
不选择任何页面,点击"批量删除印章" |
提示"请先选择要删除印章的页面" |
[ ] |
| 选中3页删除 |
选中3页(每页1个印章),点击"批量删除印章" |
3页的所有印章被删除 |
[ ] |
| 全选删除 |
全选20页(每页1个印章),点击"批量删除" |
所有印章被删除 |
[ ] |
| 空页面删除 |
选中没有印章的页面,点击"批量删除" |
不报错,提示"已从X页删除0个印章" |
[ ] |
1.4 UI 视觉反馈
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 选中边框 |
选择页面 |
蓝色边框(#3b82f6, 2px) |
[ ] |
| 选中背景 |
选择页面 |
半透明蓝色背景 |
[ ] |
| 页面指示器 |
选中3/20页 |
显示"选中 3/20 页" |
[ ] |
| 批量工具栏 |
选中页面后 |
显示批量操作工具栏 |
[ ] |
| 选中页面列表 |
选中 2,4,6页 |
显示"2, 4, 6" |
[ ] |
2. 批量导出测试 (Batch Export)
2.1 导出选中页面
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 无选中导出 |
不选择页面,点击"导出选中页面" |
提示"请先选择要导出的页面" |
[ ] |
| 选中3页导出 |
选中 2,4,6页,点击"导出选中页面" |
生成包含 2,4,6页的 PDF |
[ ] |
| 文件名格式 |
原文件 test.pdf,选中3页 |
文件名: test_选中3页.pdf |
[ ] |
| 含印章导出 |
选中页有印章,导出 |
导出的 PDF 包含印章 |
[ ] |
| 进度显示 |
导出10页 |
显示"正在生成文件..." 进度 0-100% |
[ ] |
2.2 导出全部页面
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 全部导出 |
点击"导出全部页面" |
生成包含所有页面的 PDF |
[ ] |
| 无选中导出 |
未选中任何页面,点击"导出全部页面" |
仍导出所有页面 |
[ ] |
| 文件名格式 |
原文件 test.pdf |
文件名: test.pdf(不变) |
[ ] |
2.3 分别导出
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 分别导出10页 |
点击"分别导出"(10页PDF) |
下载10个独立文件 |
[ ] |
| 文件命名 |
原文件 test.pdf |
test_page1.pdf, test_page2.pdf, ... |
[ ] |
| 文件大小 |
每页独立文件 |
每个文件大小合理(与单页内容匹配) |
[ ] |
| 含印章导出 |
某页有印章,分别导出 |
该页的独立文件包含印章 |
[ ] |
| 进度显示 |
导出50页 |
显示"导出第 X/50 页" |
[ ] |
2.4 导出提示
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 有选中页面 |
选中 2,4,6页 |
显示"当前选中: 2, 4, 6 页" |
[ ] |
| 无选中页面 |
不选择任何页面 |
显示"未选择页面,将导出全部页面" |
[ ] |
| 选择变化 |
动态改变选中页面 |
提示自动更新 |
[ ] |
3. 印章模板库测试 (Seal Library)
3.1 保存印章
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 保存新印章 |
选择印章,设置旋转30°、亮度120%,点击"保存到印章库",输入"公章A" |
提示"印章已保存" |
[ ] |
| 保存到满库 |
保存20个印章(上限) |
提示"印章库已满" |
[ ] |
| 重名保存 |
保存同名"公章A" |
提示"将覆盖旧版本",旧印章被替换 |
[ ] |
| 空名称保存 |
保存时不输入名称 |
提示"印章名称不能为空" |
[ ] |
| 取消保存 |
点击"取消" |
不保存任何内容 |
[ ] |
3.2 加载印章
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 加载印章 |
点击印章库中"公章A"的"使用"按钮 |
印章预览、旋转角度、亮度全部恢复 |
[ ] |
| 加载后添加 |
加载"公章A"(旋转30°),点击"添加普通章" |
添加的印章旋转30° |
[ ] |
| 亮度恢复 |
加载亮度120%的印章 |
预览图亮度为120% |
[ ] |
| 多个印章切换 |
依次加载"公章A"、"公章B" |
最终显示"公章B"的设置 |
[ ] |
3.3 删除印章
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 删除单个印章 |
点击"公章A"的"×"按钮 |
提示"已删除",印章从列表消失 |
[ ] |
| 删除后加载 |
尝试加载已删除的印章 |
无反应或提示"印章不存在" |
[ ] |
| 清空库 |
点击"清空印章库" |
二次确认对话框 |
[ ] |
| 确认清空 |
确认清空 |
所有印章被删除 |
[ ] |
| 取消清空 |
取消清空 |
印章库保持不变 |
[ ] |
3.4 UI 显示
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 网格布局 |
保存5个印章 |
2列网格显示,共3行 |
[ ] |
| 印章预览 |
印章旋转30° |
缩略图显示旋转30° |
[ ] |
| 印章名称 |
名称"公章A" |
显示在缩略图下方 |
[ ] |
| 空状态 |
印章库为空 |
显示"暂无保存的印章" |
[ ] |
| 滚动容器 |
保存15个印章 |
容器可滚动(max-height 300px) |
[ ] |
| Hover 效果 |
鼠标悬停在印章上 |
边框变蓝,阴影效果 |
[ ] |
4. 性能测试 (Performance)
4.1 虚拟滚动
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 100页加载 |
加载100页 PDF |
缩略图容器只渲染可见区域(~10页) |
[ ] |
| 500页加载 |
加载500页 PDF |
页面不崩溃,缩略图正常滚动 |
[ ] |
| 滚动渲染 |
快速滚动缩略图容器 |
可见区域外的缩略图自动移除 |
[ ] |
| 内存使用 |
500页PDF,打开 Task Manager |
Chrome 内存 < 200MB |
[ ] |
| 初始加载时间 |
加载100页 PDF |
< 5秒 |
[ ] |
4.2 Web Worker
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| Worker 消息 |
打开 Console,加载 PDF |
看到 "WORKER_READY" 消息 |
[ ] |
| 非阻塞渲染 |
加载500页 PDF,拖动印章 |
拖动流畅,不卡顿 |
[ ] |
| 并发操作 |
加载 PDF 时添加印章 |
两项操作都不阻塞 |
[ ] |
4.3 综合性能
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 页面切换 |
100页 PDF,从第1页跳到第100页 |
< 200ms |
[ ] |
| 批量操作速度 |
批量添加印章到50页 |
显示进度条,总时间 < 10秒 |
[ ] |
| 导出速度 |
导出50页含印章 PDF |
< 15秒 |
[ ] |
5. 兼容性测试 (Compatibility)
5.1 浏览器兼容
| 测试项 |
浏览器 |
预期结果 |
状态 |
| 批量选择 |
Chrome 120+ |
正常工作 |
[ ] |
| 批量选择 |
Firefox 120+ |
正常工作 |
[ ] |
| 批量选择 |
Safari 17+ |
正常工作 |
[ ] |
| 印章库 LocalStorage |
所有浏览器 |
数据持久化 |
[ ] |
| 虚拟滚动 |
所有浏览器 |
平滑滚动 |
[ ] |
5.2 移动端兼容
| 测试项 |
设备 |
预期结果 |
状态 |
| 批量选择 |
iPad (Safari) |
触摸选择页面 |
[ ] |
| 批量添加 |
iPad (Safari) |
正常工作 |
[ ] |
| 印章库 |
iPad (Safari) |
滚动正常 |
[ ] |
6. 边界测试 (Edge Cases)
| 测试项 |
操作步骤 |
预期结果 |
状态 |
| 空 PDF (0页) |
加载 0页 PDF |
提示错误或无操作 |
[ ] |
| 单页 PDF |
全选1页PDF |
只选中第1页 |
[ ] |
| 超大文件 |
加载 2000页 PDF |
不崩溃,虚拟滚动正常工作 |
[ ] |
| localStorage 满 |
保存20个大印章(>5MB) |
提示"存储空间不足" |
[ ] |
| 中断操作 |
批量添加时关闭页面 |
无数据损坏 |
[ ] |
| 无印章选择批量删除 |
选中页没有印章 |
提示"已删除0个印章" |
[ ] |
测试结果汇总
| 模块 |
总测试数 |
通过 |
失败 |
备注 |
| 批量操作 |
15 |
[ ] |
[ ] |
|
| 批量导出 |
15 |
[ ] |
[ ] |
|
| 印章模板库 |
20 |
[ ] |
[ ] |
|
| 性能测试 |
10 |
[ ] |
[ ] |
|
| 兼容性测试 |
8 |
[ ] |
[ ] |
|
| 边界测试 |
6 |
[ ] |
[ ] |
|
| 总计 |
74 |
[ ] |
[ ] |
|
测试人员: ____________
测试日期: ____________
整体结果: [ ] 通过 [ ] 不通过
备注: