# 缺失值处理功能 - 自动化测试说明 ## 📋 测试脚本功能 自动化测试脚本 `test_fillna_operations.py` 会自动测试缺失值处理的所有功能,包括: ### ✅ 18个测试用例 #### 基础测试(6个) 1. 均值填补数值列 2. 中位数填补偏态分布列 3. 众数填补分类列 4. 固定值填补(0) 5. 前向填充(ffill)⭐ 6. 后向填充(bfill)⭐ #### MICE测试(4个) 7. MICE填补单列 8. MICE填补多列 9. MICE填补 - 不同迭代次数 10. MICE填补 - 自定义随机种子 #### 边界测试(4个) 11. 100%缺失的列 12. 0%缺失的列(无需填补) 13. 统计API功能 14. 特殊字符列名处理 #### 数据类型测试(4个) 15. 数值列(int/float) 16. 分类列(字符串) 17. 混合类型列 18. 性能测试(1000行) --- ## 🚀 快速开始 ### 步骤1: 启动Python服务 ```bash cd AIclinicalresearch/extraction_service python main.py ``` **确认服务启动成功**:看到 `Application startup complete` 或访问 `http://localhost:8001/health` --- ### 步骤2: 运行测试脚本 **方法1 - 在项目根目录运行**: ```bash cd AIclinicalresearch python tests/test_fillna_operations.py ``` **方法2 - 在tests目录运行**: ```bash cd AIclinicalresearch/tests python test_fillna_operations.py ``` --- ## 📊 测试输出示例 ``` ╔══════════════════════════════════════════════════════════════════╗ ║ ║ ║ 缺失值处理功能 - 自动化测试脚本 v1.0 ║ ║ ║ ║ 测试内容: 18个测试用例 ║ ║ - 6个基础填补测试 ║ ║ - 4个MICE测试 ║ ║ - 4个边界测试 ║ ║ - 4个数据类型测试 ║ ║ ║ ╚══════════════════════════════════════════════════════════════════╝ ================================================================================ 缺失值处理功能 - 自动化测试 ================================================================================ ℹ️ 检查Python服务状态... ✅ Python服务运行正常 ℹ️ 生成测试数据... ✅ 生成了 5 个测试数据集 • numeric: 100 行 × 4 列 • categorical: 100 行 × 3 列 • timeseries: 100 行 × 3 列 • edge_cases: 10 行 × 4 列 • mixed: 100 行 × 4 列 [1/18] 均值填补数值列 -------------------------------------------------------------------------------- ✅ 均值填补成功,缺失值已全部填补 ✅ ✓ 新列位置正确(紧邻原列) [2/18] 中位数填补偏态分布列 -------------------------------------------------------------------------------- ✅ 中位数填补成功 ... ================================================================================ 测试总结 ================================================================================ 总测试数: 18 ✅ 通过: 18 ❌ 失败: 0 通过率: 100.0% 总耗时: 45.32秒 🎉 所有测试通过! ``` --- ## 🔧 依赖安装 测试脚本需要以下Python包: ```bash pip install pandas numpy requests ``` 这些包在 `extraction_service/requirements.txt` 中已经包含。 --- ## ⚙️ 配置 ### 修改服务地址 如果Python服务不在默认端口 `8001`,修改脚本开头: ```python PYTHON_SERVICE_URL = "http://localhost:8001" # 修改为你的端口 ``` --- ## 📝 测试结果说明 ### 颜色含义 - 🟢 **绿色** (✅): 测试通过 - 🔴 **红色** (❌): 测试失败 - 🟡 **黄色** (⚠️): 警告信息 - 🔵 **蓝色** (ℹ️): 提示信息 ### 通过标准 - ✅ API返回成功 - ✅ 新列创建正确 - ✅ 缺失值被正确填补 - ✅ 新列位置在原列旁边 --- ## 🐛 常见问题 ### 1. 无法连接到Python服务 **错误**: `无法连接到Python服务: Connection refused` **解决**: ```bash # 确保Python服务已启动 cd AIclinicalresearch/extraction_service python main.py ``` --- ### 2. 模块未找到 **错误**: `ModuleNotFoundError: No module named 'pandas'` **解决**: ```bash pip install pandas numpy requests ``` --- ### 3. 部分测试失败 **现象**: 通过率 < 100% **处理**: 1. 查看失败测试的具体错误信息 2. 检查Python服务日志 3. 确认数据格式是否正确 --- ## 🔍 调试技巧 ### 1. 单独运行某个测试 修改 `test_fillna_operations.py` 的 `run_all_tests()` 方法,只保留需要测试的用例: ```python tests = [ (self.test_1_mean_fill, "基础"), # 只测试这一个 ] ``` ### 2. 查看详细日志 在测试函数中添加: ```python print(json.dumps(result, indent=2, ensure_ascii=False)) ``` ### 3. 保存测试数据 在 `generate_test_data()` 中添加: ```python df_numeric.to_excel('test_data/numeric_test.xlsx', index=False) ``` --- ## 📈 性能基准 **参考值**(在普通笔记本上): - **简单填补**(均值/中位数/众数): < 1秒 - **前向/后向填充**: < 1秒 - **MICE填补 100行**: 2-5秒 - **MICE填补 1000行**: 20-40秒 - **全部18个测试**: 45-60秒 --- ## 🎯 下一步 测试通过后: 1. 在真实数据上测试 2. 测试前端集成 3. 性能优化(如有需要) --- ## 📞 技术支持 如有问题,请检查: 1. Python服务日志 2. 测试脚本输出 3. 开发文档:`工具C_缺失值处理_开发完成说明.md`