✨ 主要优化成果: - 修复Unicode字符编码问题(Windows跨平台兼容性) - 安装wkhtmltoimage,截图功能完全修复 - 智能延迟优化(api_browser.py) - 线程池资源泄漏修复(tasks.py) - HTML解析缓存机制 - 二分搜索算法优化(kdocs_uploader.py) - 自适应资源配置(browser_pool_worker.py) 🐛 Bug修复: - 解决截图失败问题 - 修复管理员密码设置 - 解决应用启动编码错误 📚 新增文档: - BUG_REPORT.md - 完整bug分析报告 - PERFORMANCE_ANALYSIS_REPORT.md - 性能优化分析 - LINUX_DEPLOYMENT_ANALYSIS.md - Linux部署指南 - SCREENSHOT_FIX_SUCCESS.md - 截图功能修复记录 - INSTALL_WKHTMLTOIMAGE.md - 安装指南 - OPTIMIZATION_FIXES_SUMMARY.md - 优化总结 🚀 功能验证: - Flask应用正常运行(51233端口) - 数据库、截图线程池、API预热正常 - 管理员登录:admin/admin123 - 健康检查API:http://127.0.0.1:51233/health 💡 技术改进: - 智能延迟算法(自适应调整) - LRU缓存策略 - 线程池资源管理优化 - 二分搜索算法(O(log n) vs O(n)) - 自适应资源管理 🎯 项目现在稳定运行,可部署到Linux环境
257 lines
5.8 KiB
Markdown
257 lines
5.8 KiB
Markdown
# 金山文档测试工具使用指南
|
||
|
||
## 🔧 线程问题解决方案
|
||
|
||
浮浮酱为您创建了**4个不同版本**的测试工具,按推荐顺序排列:
|
||
|
||
---
|
||
|
||
## 📌 **推荐测试顺序**
|
||
|
||
### **方案1: 最简版本** ⭐⭐⭐⭐⭐ (首选)
|
||
|
||
**文件**: `simple_test.py`
|
||
**启动**: 双击 `start_simple_test.bat`
|
||
|
||
**特点**:
|
||
- ✅ **无UI界面** - 直接命令行运行
|
||
- ✅ **主线程运行** - 避免所有线程问题
|
||
- ✅ **最稳定** - 简单直接,出错概率最低
|
||
- ✅ **交互友好** - 每步都有提示
|
||
|
||
**使用流程**:
|
||
```
|
||
1. 双击 start_simple_test.bat
|
||
2. 输入金山文档URL (或直接回车使用默认)
|
||
3. 按 y 确认开始测试
|
||
4. 观察浏览器自动启动和操作
|
||
5. 测试完成后按Enter保持浏览器打开
|
||
```
|
||
|
||
**适合**: 所有人,特别是遇到问题的用户
|
||
|
||
---
|
||
|
||
### **方案2: 异步UI版本** ⭐⭐⭐
|
||
|
||
**文件**: `kdocs_async_test.py`
|
||
**启动**: 双击 `start_async_test.bat`
|
||
|
||
**特点**:
|
||
- ✅ **图形界面** - 有UI,操作直观
|
||
- ✅ **异步架构** - 使用asyncio避免线程问题
|
||
- ✅ **单线程异步** - 所有浏览器操作在异步循环中
|
||
|
||
**使用流程**:
|
||
```
|
||
1. 双击 start_async_test.bat
|
||
2. 点击"启动浏览器" → 确认执行
|
||
3. 点击"打开文档" → 确认执行
|
||
4. 依次执行各项测试
|
||
```
|
||
|
||
**适合**: 喜欢图形界面的用户
|
||
|
||
---
|
||
|
||
### **方案3: 同步线程版本** ⭐⭐
|
||
|
||
**文件**: `kdocs_sync_test.py`
|
||
**启动**: 双击 `start_sync_test.bat`
|
||
|
||
**特点**:
|
||
- ✅ **图形界面** - 有UI,操作直观
|
||
- ✅ **线程本地存储** - 每个线程使用自己的浏览器实例
|
||
- ⚠️ **较复杂** - 线程管理逻辑较复杂
|
||
|
||
**使用流程**:
|
||
```
|
||
1. 双击 start_sync_test.bat
|
||
2. 点击"启动浏览器" → 确认执行
|
||
3. 点击"打开文档" → 确认执行
|
||
4. 依次执行各项测试
|
||
```
|
||
|
||
**适合**: 开发者,调试特定问题
|
||
|
||
---
|
||
|
||
### **方案4: 线程锁版本** ⭐ (备选)
|
||
|
||
**文件**: `kdocs_safety_test_fixed.py`
|
||
**启动**: 双击 `start_safety_test_fixed.bat`
|
||
|
||
**特点**:
|
||
- ✅ **图形界面** - 有UI,操作直观
|
||
- ✅ **线程锁** - 使用锁机制同步访问
|
||
- ⚠️ **可能仍有问题** - Playwright对线程切换敏感
|
||
|
||
**使用流程**:
|
||
```
|
||
1. 双击 start_safety_test_fixed.bat
|
||
2. 点击"启动浏览器" → 确认执行
|
||
3. 点击"打开文档" → 确认执行
|
||
4. 依次执行各项测试
|
||
```
|
||
|
||
**适合**: 备选方案
|
||
|
||
---
|
||
|
||
## 🚀 **快速开始 (推荐)**
|
||
|
||
### **步骤1: 测试基本功能**
|
||
|
||
首先运行**最简版本**确认基本功能:
|
||
|
||
```bash
|
||
# Windows用户
|
||
双击: start_simple_test.bat
|
||
|
||
# 或手动运行
|
||
python simple_test.py
|
||
```
|
||
|
||
**预期结果**:
|
||
```
|
||
✓ Playwright启动成功
|
||
✓ 浏览器启动成功
|
||
✓ 页面创建成功
|
||
✓ 页面导航完成
|
||
✓ 人员搜索测试完成
|
||
```
|
||
|
||
### **步骤2: 测试UI工具**
|
||
|
||
如果最简版本工作正常,再测试UI版本:
|
||
|
||
```bash
|
||
# 首选异步版本
|
||
双击: start_async_test.bat
|
||
|
||
# 如果异步版本有问题,尝试同步版本
|
||
双击: start_sync_test.bat
|
||
```
|
||
|
||
---
|
||
|
||
## 🔍 **问题排查**
|
||
|
||
### **问题1: "cannot switch to a different thread"**
|
||
|
||
**解决方案**: 使用**最简版本** (`simple_test.py`)
|
||
- 这是最稳定的解决方案
|
||
- 避免了UI框架带来的线程复杂性
|
||
|
||
### **问题2: "playwright未安装"**
|
||
|
||
**解决方案**:
|
||
```bash
|
||
pip install playwright
|
||
playwright install chromium
|
||
```
|
||
|
||
### **问题3: 浏览器启动失败**
|
||
|
||
**可能原因**:
|
||
1. 权限不足 - 以管理员身份运行
|
||
2. 端口被占用 - 关闭其他浏览器实例
|
||
3. 杀毒软件阻止 - 添加例外
|
||
|
||
### **问题4: 文档打开失败**
|
||
|
||
**检查**:
|
||
1. URL是否正确
|
||
2. 网络是否正常
|
||
3. 是否需要登录
|
||
|
||
---
|
||
|
||
## 📊 **测试项目说明**
|
||
|
||
每个测试工具都包含以下测试项目:
|
||
|
||
### **测试1: 浏览器连接**
|
||
- 验证Playwright和浏览器是否正常
|
||
- 检查页面对象是否可用
|
||
- **安全**: 仅检查,无实际操作
|
||
|
||
### **测试2: 文档打开**
|
||
- 导航到金山文档URL
|
||
- 检查页面加载状态
|
||
- 检查是否需要登录
|
||
- **安全**: 仅导航,无修改
|
||
|
||
### **测试3: 表格读取**
|
||
- 尝试读取表格元素
|
||
- 检查名称框
|
||
- 检查canvas元素
|
||
- **安全**: 仅读取,无修改
|
||
|
||
### **测试4: 人员搜索**
|
||
- 执行 `Ctrl+F` 搜索操作
|
||
- 输入测试姓名"张三"
|
||
- **安全**: 仅搜索,无修改
|
||
|
||
### **测试5: 图片上传(单步)** ⚠️
|
||
- 导航到D3单元格
|
||
- 点击插入 → 图片 → 本地
|
||
- 上传用户选择的图片
|
||
- **注意**: 会实际执行上传,但仅影响单个单元格
|
||
|
||
---
|
||
|
||
## 💡 **使用建议**
|
||
|
||
### **新手用户**
|
||
1. **首选**: `start_simple_test.bat` (最简版本)
|
||
2. **备选**: `start_async_test.bat` (异步版本)
|
||
|
||
### **开发者**
|
||
1. **首选**: `simple_test.py` (快速调试)
|
||
2. **深入**: `kdocs_async_test.py` (异步架构)
|
||
3. **调试**: `kdocs_sync_test.py` (线程本地存储)
|
||
|
||
### **遇到问题**
|
||
1. **优先**: 使用最简版本确认基本功能
|
||
2. **查看日志**: 所有版本都有详细日志
|
||
3. **逐个测试**: 按顺序执行测试项目
|
||
4. **检查配置**: 确保URL等配置正确
|
||
|
||
---
|
||
|
||
## 📞 **获取帮助**
|
||
|
||
如果遇到问题:
|
||
|
||
1. **查看日志**: 每个操作都有详细日志输出
|
||
2. **尝试不同版本**: 按推荐顺序尝试
|
||
3. **检查环境**: 确保Python和依赖已正确安装
|
||
4. **最小化测试**: 使用最简版本隔离问题
|
||
|
||
---
|
||
|
||
## 🎯 **测试成功标志**
|
||
|
||
**最简版本成功**:
|
||
```
|
||
[15:06:47] SUCCESS: ✓ Playwright启动成功
|
||
[15:06:48] SUCCESS: ✓ 浏览器启动成功
|
||
[15:06:49] SUCCESS: ✓ 上下文创建成功
|
||
[15:06:50] SUCCESS: ✓ 页面创建成功
|
||
[15:06:53] SUCCESS: ✓ 页面导航完成
|
||
[15:06:56] SUCCESS: ✓ 人员搜索测试完成
|
||
```
|
||
|
||
**UI版本成功**:
|
||
- 浏览器窗口正常打开
|
||
- 文档正常加载
|
||
- 所有测试步骤都显示"SUCCESS"
|
||
- 操作日志无错误信息
|
||
|
||
---
|
||
|
||
**祝您测试顺利!** 🎉
|
||
|
||
如有问题,请优先使用最简版本进行排查。
|