✨ 主要优化成果: - 修复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环境
5.8 KiB
5.8 KiB
金山文档测试工具使用指南
🔧 线程问题解决方案
浮浮酱为您创建了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: 测试基本功能
首先运行最简版本确认基本功能:
# Windows用户
双击: start_simple_test.bat
# 或手动运行
python simple_test.py
预期结果:
✓ Playwright启动成功
✓ 浏览器启动成功
✓ 页面创建成功
✓ 页面导航完成
✓ 人员搜索测试完成
步骤2: 测试UI工具
如果最简版本工作正常,再测试UI版本:
# 首选异步版本
双击: start_async_test.bat
# 如果异步版本有问题,尝试同步版本
双击: start_sync_test.bat
🔍 问题排查
问题1: "cannot switch to a different thread"
解决方案: 使用最简版本 (simple_test.py)
- 这是最稳定的解决方案
- 避免了UI框架带来的线程复杂性
问题2: "playwright未安装"
解决方案:
pip install playwright
playwright install chromium
问题3: 浏览器启动失败
可能原因:
- 权限不足 - 以管理员身份运行
- 端口被占用 - 关闭其他浏览器实例
- 杀毒软件阻止 - 添加例外
问题4: 文档打开失败
检查:
- URL是否正确
- 网络是否正常
- 是否需要登录
📊 测试项目说明
每个测试工具都包含以下测试项目:
测试1: 浏览器连接
- 验证Playwright和浏览器是否正常
- 检查页面对象是否可用
- 安全: 仅检查,无实际操作
测试2: 文档打开
- 导航到金山文档URL
- 检查页面加载状态
- 检查是否需要登录
- 安全: 仅导航,无修改
测试3: 表格读取
- 尝试读取表格元素
- 检查名称框
- 检查canvas元素
- 安全: 仅读取,无修改
测试4: 人员搜索
- 执行
Ctrl+F搜索操作 - 输入测试姓名"张三"
- 安全: 仅搜索,无修改
测试5: 图片上传(单步) ⚠️
- 导航到D3单元格
- 点击插入 → 图片 → 本地
- 上传用户选择的图片
- 注意: 会实际执行上传,但仅影响单个单元格
💡 使用建议
新手用户
- 首选:
start_simple_test.bat(最简版本) - 备选:
start_async_test.bat(异步版本)
开发者
- 首选:
simple_test.py(快速调试) - 深入:
kdocs_async_test.py(异步架构) - 调试:
kdocs_sync_test.py(线程本地存储)
遇到问题
- 优先: 使用最简版本确认基本功能
- 查看日志: 所有版本都有详细日志
- 逐个测试: 按顺序执行测试项目
- 检查配置: 确保URL等配置正确
📞 获取帮助
如果遇到问题:
- 查看日志: 每个操作都有详细日志输出
- 尝试不同版本: 按推荐顺序尝试
- 检查环境: 确保Python和依赖已正确安装
- 最小化测试: 使用最简版本隔离问题
🎯 测试成功标志
最简版本成功:
[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"
- 操作日志无错误信息
祝您测试顺利! 🎉
如有问题,请优先使用最简版本进行排查。