# 微智电子系统测试现状与升级方案

## 📊 当前测试能力（已实现）

### ✅ 访问测试（Level 1）
- 检查页面是否能打开（HTTP 200）
- 检查API是否响应
- 检查数据库是否连接
- **局限**：只是"能打开"，不是"能用"

### ❌ 功能测试（Level 2）- 尚未实现
您需要的：
- 点击按钮是否正常响应
- 图表是否按预期显示数据
- 筛选器（周/月/日）切换是否正常
- 表单提交是否成功
- 弹窗、下拉菜单等交互是否正常
- 数据计算是否正确

---

## 🎯 真实功能测试方案

### 方案A：使用 Playwright（推荐）
**原理**：用程序控制真实浏览器，像真人一样点击、输入、验证

**能测试的内容**：
```javascript
// 示例：测试ERP首页的图表切换
1. 打开浏览器访问 /erp/index.html
2. 登录（输入手机号、密码）
3. 点击"营收趋势"图表
4. 点击"近6个月"按钮
5. 验证图表数据是否正确（有6个数据点）
6. 点击"近12个月"按钮
7. 验证图表更新为12个数据点
8. 截图对比
```

**能测试的功能清单**：
- ✅ 登录流程（输入→点击→跳转）
- ✅ 导航菜单（点击→页面切换）
- ✅ 图表交互（切换时间范围→数据更新）
- ✅ 表格操作（排序、筛选、分页）
- ✅ 表单提交（输入数据→提交→验证结果）
- ✅ 弹窗/对话框（打开→操作→关闭）
- ✅ 数据导出（点击导出→文件生成）
- ✅ 权限控制（不同角色看到不同内容）

---

## 🔧 技术实现方案

### 需要安装的工具
```bash
# 安装 Playwright（浏览器自动化）
npm install -g @playwright/test
npx playwright install

# 或 Python 版本
pip install playwright
playwright install
```

### 测试脚本示例
```python
# test_erp_dashboard.py
from playwright.sync_api import sync_playwright

def test_chart_time_range():
    with sync_playwright() as p:
        # 启动浏览器
        browser = p.chromium.launch()
        page = browser.new_page()
        
        # 1. 访问登录页
        page.goto('http://118.126.91.196/erp/login.html')
        
        # 2. 输入账号密码
        page.fill('#phone', '13981734846')
        page.fill('#password', '123456')
        
        # 3. 点击登录
        page.click('#submitBtn')
        
        # 4. 等待跳转到首页
        page.wait_for_url('**/erp/index.html')
        
        # 5. 验证统计数据
        revenue = page.text_content('#statRevenue')
        assert '¥' in revenue, "营收显示异常"
        
        # 6. 点击"近6个月"按钮
        page.click('button:has-text("近6个月")')
        
        # 7. 验证图表更新（截图对比或数据验证）
        chart_data = page.evaluate('''() => {
            return window.Chart.instances[0].data.labels.length;
        }''')
        assert chart_data == 6, f"图表数据点应为6，实际{chart_data}"
        
        # 8. 点击"近12个月"
        page.click('button:has-text("近12个月")')
        
        # 9. 验证更新为12个数据点
        chart_data = page.evaluate('''() => {
            return window.Chart.instances[0].data.labels.length;
        }''')
        assert chart_data == 12, f"图表数据点应为12，实际{chart_data}"
        
        print("✅ 图表时间范围切换测试通过")
        browser.close()
```

---

## 📋 完整功能测试清单

### ERP系统功能测试

#### 1. 登录模块
- [ ] 正确账号密码能登录
- [ ] 错误密码提示错误
- [ ] 登录后跳转正确
- [ ] Token存储正确

#### 2. 首页仪表盘
- [ ] 统计数据正确显示
- [ ] 营收趋势图表加载
- [ ] 图表时间切换（6月/12月）正常
- [ ] 订单状态饼图显示
- [ ] 最近订单列表加载
- [ ] 项目进度列表加载

#### 3. 库存管理
- [ ] 库存列表加载
- [ ] 搜索功能正常
- [ ] 入库操作（弹出表单→提交→更新）
- [ ] 出库操作（弹出表单→提交→更新）
- [ ] 库存预警显示
- [ ] 分页功能

#### 4. 订单管理
- [ ] 订单列表加载
- [ ] 创建订单（表单验证→提交）
- [ ] 状态筛选（全部/待处理/进行中/已完成）
- [ ] 订单详情查看

#### 5. 项目管理
- [ ] 项目列表加载
- [ ] 进度条显示正确
- [ ] 状态筛选正常

#### 6. 财务管理
- [ ] 收支记录加载
- [ ] 类型筛选（收入/支出）
- [ ] 时间范围筛选

---

## 🤖 自动化测试架构（升级后）

```
当前：
访问测试 → HTTP 200 OK → ✅ 通过
   ↓
局限：不知道按钮能不能点，图表对不对

升级后：
功能测试 → 打开浏览器 → 真实操作 → 验证结果 → ✅ 通过
   ↓
优势：像真人一样测试每个按钮、每个图表
```

---

## ⚠️ 当前状况说明

**已实现**：
- ✅ 服务器部署
- ✅ 基础访问测试
- ✅ 数据库连接测试
- ✅ API响应测试

**待实现**（需要您确认）：
- ❌ 浏览器自动化测试
- ❌ 真实功能交互测试
- ❌ 图表数据验证
- ❌ 表单提交验证

---

## 💡 建议的实施步骤

### 第一步：安装测试环境（需要5-10分钟）
```bash
# 安装浏览器自动化工具
npm install -g @playwright/test
npx playwright install chromium
```

### 第二步：编写核心功能测试（我可以完成）
- 登录流程测试
- 首页图表测试
- 库存操作测试
- 订单创建测试

### 第三步：集成到自动化系统
- 定时运行功能测试
- 生成可视化报告
- 失败时截图保存
- 发送告警通知

---

## ❓ 需要您确认

**问题1：是否安装浏览器自动化工具？**
- 需要安装 Playwright（约500MB）
- 需要 Chromium 浏览器

**问题2：优先测试哪些功能？**
- A. 全部功能（需要1-2天）
- B. 核心功能（登录、首页、库存 - 半天）
- C. 先测试最常用的（您指定）

**问题3：测试频率？**
- A. 每次部署前测试（推荐）
- B. 每天定时测试
- C. 每小时测试

---

**结论**：
- 当前：只能测"能不能打开"
- 升级后：能测"能不能用、对不对"
- 需要：安装浏览器自动化工具 + 编写测试脚本

**您希望我现在开始实施功能测试方案吗？** 🤔
