iloom-flatten/e2e/README.md

144 lines
4.4 KiB
Markdown
Raw Permalink Normal View History

# E2E 全流程模拟测试指南
## 测试文件说明
### 1. full-workflow-simulation.spec.ts
完整的全流程模拟测试,覆盖以下场景:
- **阶段一**:采购商创建计划(登录、产品信息、新建计划)
- **阶段二**:分享链接与首次合作(计划总览、导入计划)
- **阶段三**:纺织厂生产流程(登录、查看计划、确认流程节点)
- **阶段四**:分批次入库(坯布仓库、入库操作)
- **阶段五**:数据验证(计划完成状态、成品仓库、待结款)
- **多角色协作**:双窗口实时同步测试
- **边界情况**:未登录访问、无效 token、离线提示
- **性能测试**:页面加载时间、资源加载错误检测
### 2. database-validation.sql
数据库层面的 SQL 验证脚本,包含:
- 环境准备(清理旧数据)
- 完整业务流程 SQL 序列
- 数据完整性验证查询
- 综合验证报告
### 3. core-workflow.spec.ts
核心业务流程测试(登录、注册、路由、响应式布局)
### 4. collaboration-workflow.spec.ts
协作流程测试(采购商视角、纺织厂视角、数据同步)
## 运行测试
### 前置条件
1. 安装依赖:`pnpm install`
2. 安装浏览器:`npx playwright install chromium`
3. 启动开发服务器:`pnpm run dev`
### 运行命令
```bash
# 运行所有测试
npx playwright test
# 运行特定测试文件
npx playwright test e2e/full-workflow-simulation.spec.ts
# 运行特定项目(浏览器)
npx playwright test --project=chromium
npx playwright test --project=firefox
npx playwright test --project=webkit
# 运行特定测试(按名称匹配)
npx playwright test -g "采购商登录"
# 调试模式
npx playwright test --debug
# 生成 HTML 报告
npx playwright show-report
```
### 数据库验证
使用 meoo-cli 执行 SQL 验证:
```bash
# 验证计划基本信息
meoo-cli cloud query --sql "SELECT plan_code, status, target_quantity, completed_quantity FROM production_plans WHERE plan_code = 'TEST-2026-001';"
# 验证流程节点完成情况
meoo-cli cloud query --sql "SELECT COUNT(*) as total_steps, SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed_steps FROM plan_process_steps WHERE plan_id IN (SELECT id FROM production_plans WHERE plan_code = 'TEST-2026-001');"
# 验证入库记录汇总
meoo-cli cloud query --sql "SELECT COUNT(*) as batches, SUM(quantity) as total_meters FROM inventory_records WHERE plan_id IN (SELECT id FROM production_plans WHERE plan_code = 'TEST-2026-001');"
# 验证数据一致性
meoo-cli cloud query --sql "SELECT p.completed_quantity, COALESCE(SUM(ir.quantity), 0) as inventory_total, CASE WHEN p.completed_quantity = COALESCE(SUM(ir.quantity), 0) THEN '✓ 一致' ELSE '✗ 不一致' END as check_result FROM production_plans p LEFT JOIN inventory_records ir ON ir.plan_id = p.id WHERE p.plan_code = 'TEST-2026-001' GROUP BY p.completed_quantity;"
```
## 测试数据结构
### 测试用固定 ID
- 采购商公司:`11111111-1111-1111-1111-111111111101`
- 纺织厂公司:`11111111-1111-1111-1111-111111111102`
- 采购商用户:`a0000001-0000-0000-0000-000000000001`
- 纺织厂用户:`a0000002-0000-0000-0000-000000000002`
- 坯布仓库:`22222222-2222-2222-2222-222222222202`
### 预期测试结果
- 计划编号:`TEST-2026-001`
- 计划状态:`completed`
- 目标产量:`10000`
- 完成产量:`10000`
- 流程节点:`5/5` 已完成
- 入库批次:`3`
- 总入库量:`10000`
## 常见问题
### Q: 浏览器未安装
```bash
npx playwright install chromium
```
### Q: 开发服务器未启动
```bash
pnpm run dev
```
### Q: 测试超时
检查网络连接和数据库服务状态:
```bash
meoo-cli cloud status
```
### Q: 如何查看测试报告
```bash
npx playwright show-report
```
## 测试覆盖率
| 测试类别 | 测试数量 | 覆盖场景 |
|---------|---------|---------|
| 全流程模拟 | 20 | 完整业务流程 |
| 核心业务 | 9 | 登录、注册、路由 |
| 协作流程 | 9 | 多角色协作 |
| 边界情况 | 3 | 异常处理 |
| 性能测试 | 2 | 加载时间、错误检测 |
| **总计** | **43** | - |
## 持续集成
在 CI/CD 中运行测试:
```yaml
- name: Run E2E Tests
run: |
npx playwright install --with-deps chromium
npx playwright test --project=chromium
```
## 更新日志
- **2026-06-04**: 创建全流程模拟测试文件和数据库验证脚本