188 lines
5.3 KiB
Markdown
188 lines
5.3 KiB
Markdown
# 加入监测功能测试报告
|
|
|
|
## 测试日期
|
|
2025-10-05
|
|
|
|
## 问题描述
|
|
用户反馈:点击"加入监测"按钮后,监测页面没有显示新加入的股票。
|
|
|
|
## 测试过程
|
|
|
|
### 1. 数据库写入测试 ✅
|
|
|
|
**测试脚本**: `test_monitor_add.py`
|
|
|
|
**测试结果**:
|
|
- ✅ 成功从历史记录提取数据
|
|
- ✅ 成功解析进场区间: `44.49 - 47.42`
|
|
- ✅ 成功解析止盈位: `48.0`
|
|
- ✅ 成功解析止损位: `42.5`
|
|
- ✅ 成功写入监测数据库,ID: 3
|
|
- ✅ 验证监测列表,数据完整准确
|
|
|
|
**测试股票**: 603667 - 五洲新春
|
|
|
|
**数据验证**:
|
|
```
|
|
股票代码: 603667
|
|
股票名称: 五洲新春
|
|
投资评级: 持有-观望
|
|
进场区间: {'min': 44.49, 'max': 47.42}
|
|
止盈位: 48.0
|
|
止损位: 42.5
|
|
监测间隔: 30分钟
|
|
通知启用: True
|
|
```
|
|
|
|
### 2. 监测列表显示测试 ✅
|
|
|
|
**测试脚本**: `test_monitor_display.py`
|
|
|
|
**测试结果**:
|
|
- ✅ 监测列表中共有 3 只股票
|
|
- ✅ 新添加的 603667 成功显示在列表首位
|
|
- ✅ 所有数据字段完整准确
|
|
|
|
## 问题根因分析
|
|
|
|
通过测试发现,数据库写入和读取功能**完全正常**。问题出在用户界面的页面跳转逻辑:
|
|
|
|
### 原始逻辑问题
|
|
|
|
```python
|
|
# 添加成功后只是刷新页面
|
|
st.success(f"✅ 已成功将 {record['symbol']} 加入监测列表!")
|
|
st.balloons()
|
|
monitor_service.manual_update_stock(stock_id)
|
|
|
|
# 仅清理 add_to_monitor_id
|
|
if 'add_to_monitor_id' in st.session_state:
|
|
del st.session_state.add_to_monitor_id
|
|
|
|
time.sleep(1)
|
|
st.rerun() # 刷新后仍停留在历史记录页面
|
|
```
|
|
|
|
**问题**: 添加成功后页面刷新,但用户仍然停留在历史记录详情页面,需要手动切换到监测页面才能看到新添加的股票。
|
|
|
|
## 解决方案
|
|
|
|
### 修改的文件
|
|
|
|
#### 1. `app.py` - 修改跳转逻辑
|
|
|
|
```python
|
|
# 清理session state并跳转到监测页面
|
|
if 'add_to_monitor_id' in st.session_state:
|
|
del st.session_state.add_to_monitor_id
|
|
if 'viewing_record_id' in st.session_state:
|
|
del st.session_state.viewing_record_id
|
|
if 'show_history' in st.session_state:
|
|
del st.session_state.show_history
|
|
|
|
# 设置跳转到监测页面
|
|
st.session_state.show_monitor = True
|
|
st.session_state.monitor_jump_highlight = record['symbol'] # 标记要高亮显示的股票
|
|
|
|
time.sleep(1.5)
|
|
st.rerun()
|
|
```
|
|
|
|
**改进点**:
|
|
1. ✅ 清理所有相关的 session state(历史记录页面标记、详情页面标记)
|
|
2. ✅ 设置 `show_monitor = True` 自动跳转到监测页面
|
|
3. ✅ 传递股票代码用于高亮显示
|
|
4. ✅ 增加延迟到 1.5 秒,让用户看到成功提示
|
|
|
|
#### 2. `monitor_manager.py` - 添加欢迎提示
|
|
|
|
```python
|
|
def display_monitor_manager():
|
|
"""显示监测管理主页面"""
|
|
|
|
st.markdown("## 📊 股票监测管理")
|
|
st.markdown("---")
|
|
|
|
# 检查是否有跳转提示
|
|
if 'monitor_jump_highlight' in st.session_state:
|
|
symbol = st.session_state.monitor_jump_highlight
|
|
st.success(f"✅ {symbol} 已成功加入监测列表!您可以在下方查看。")
|
|
del st.session_state.monitor_jump_highlight
|
|
|
|
# ... 其余代码
|
|
```
|
|
|
|
**改进点**:
|
|
1. ✅ 在监测页面顶部显示欢迎提示
|
|
2. ✅ 明确告知用户股票已成功添加
|
|
3. ✅ 提示用户在下方查看
|
|
|
|
## 最终效果
|
|
|
|
### 用户操作流程
|
|
|
|
1. 用户在历史记录页面点击"➕ 监测"按钮
|
|
2. 显示加入监测对话框,自动填充数据
|
|
3. 用户确认或修改参数后点击"✅ 确认加入监测"
|
|
4. 显示成功提示和气球动画(1.5秒)
|
|
5. **自动跳转到监测页面**
|
|
6. **在监测页面顶部显示成功提示**
|
|
7. **新添加的股票显示在监测列表中**
|
|
|
|
### 改进前后对比
|
|
|
|
| 项目 | 改进前 | 改进后 |
|
|
|------|--------|--------|
|
|
| 页面跳转 | ❌ 停留在历史记录页面 | ✅ 自动跳转到监测页面 |
|
|
| 用户体验 | ❌ 需要手动切换页面 | ✅ 自动展示结果 |
|
|
| 成功反馈 | ⚠️ 仅有气球动画 | ✅ 气球动画 + 明确提示 |
|
|
| 数据验证 | ⚠️ 用户无法立即确认 | ✅ 立即显示在列表中 |
|
|
|
|
## 测试结论
|
|
|
|
### 功能状态
|
|
- ✅ 数据提取功能:正常
|
|
- ✅ 数据解析功能:正常(支持多种格式)
|
|
- ✅ 数据库写入:正常
|
|
- ✅ 监测列表显示:正常
|
|
- ✅ 页面跳转:已修复
|
|
- ✅ 用户体验:已优化
|
|
|
|
### 兼容性
|
|
- ✅ 支持进场区间多种格式(-, ~, 至, 元, ¥等)
|
|
- ✅ 支持止盈止损多种格式
|
|
- ✅ 重复检测正常工作
|
|
- ✅ 监测服务集成正常
|
|
|
|
## 建议
|
|
|
|
### 使用建议
|
|
1. 加入监测前,建议确认数据准确性
|
|
2. 确保监测服务处于运行状态
|
|
3. 配置邮件参数以接收通知
|
|
|
|
### 未来优化方向
|
|
1. 可以考虑在监测列表中高亮显示刚添加的股票(闪烁效果)
|
|
2. 可以添加批量导入功能(一次添加多个历史记录)
|
|
3. 可以添加智能建议功能(根据历史记录自动推荐待监测股票)
|
|
|
|
## 附录
|
|
|
|
### 测试环境
|
|
- 操作系统: Windows 10
|
|
- Python 版本: 3.12
|
|
- Streamlit 版本: 最新
|
|
- 数据库: SQLite (stock_monitor.db)
|
|
|
|
### 测试数据
|
|
- 历史记录数: 多条
|
|
- 监测股票数: 3只
|
|
- 测试股票: 603667 - 五洲新春
|
|
|
|
### 相关文件
|
|
- `app.py` - 主应用文件(已修改)
|
|
- `monitor_manager.py` - 监测管理模块(已修改)
|
|
- `monitor_db.py` - 监测数据库模块(无修改)
|
|
- `database.py` - 分析数据库模块(无修改)
|
|
|