- 添加 Bash 测试脚本 (test-project-creation.sh) - 添加 PowerShell 测试脚本 (test-project-creation.ps1) - 添加批处理测试脚本 (test-project-creation.bat) - 添加测试说明文档 (README.md) - 支持4个测试场景:成功、参数校验、查询列表、异常处理 - 包含数据库验证和事务回滚验证
259 lines
6.3 KiB
Markdown
259 lines
6.3 KiB
Markdown
# 项目创建功能测试说明
|
||
|
||
## 概述
|
||
|
||
本文档说明如何使用测试脚本测试"创建项目时集成流水分析平台"功能。
|
||
|
||
## 测试场景
|
||
|
||
### 1. 创建项目成功
|
||
- **目标**: 验证创建项目时成功调用流水分析平台并保存 `lsfxProjectId`
|
||
- **步骤**:
|
||
1. 准备项目数据(项目名称、描述、配置方式)
|
||
2. 调用创建项目接口
|
||
3. 验证响应中包含 `lsfxProjectId`
|
||
4. 验证数据库中 `lsfx_project_id` 字段已保存
|
||
|
||
### 2. 创建项目失败(项目名称为空)
|
||
- **目标**: 验证参数校验功能
|
||
- **预期**: 接口应拒绝空项目名称,返回错误信息
|
||
|
||
### 3. 查询项目列表
|
||
- **目标**: 验证项目列表中正确显示 `lsfxProjectId`
|
||
- **步骤**:
|
||
1. 调用项目列表查询接口
|
||
2. 验证返回数据包含 `lsfxProjectId` 字段
|
||
|
||
### 4. 流水分析平台不可用(可选)
|
||
- **目标**: 验证异常处理和事务回滚
|
||
- **步骤**:
|
||
1. 停止 Mock Server
|
||
2. 尝试创建项目
|
||
3. 验证返回错误信息
|
||
4. 验证数据库无脏数据(事务已回滚)
|
||
|
||
## 前置条件
|
||
|
||
### 必须条件
|
||
1. **后端服务已启动**
|
||
```bash
|
||
cd ruoyi-admin
|
||
mvn spring-boot:run
|
||
```
|
||
访问地址: http://localhost:8080
|
||
|
||
2. **Mock Server 已启动**(测试场景1-3)
|
||
```bash
|
||
cd lsfx-mock-server
|
||
python app.py
|
||
```
|
||
访问地址: http://localhost:8000
|
||
|
||
3. **数据库连接正常**
|
||
- 主机: 116.62.17.81
|
||
- 数据库: ccdi
|
||
- 用户: root
|
||
|
||
### 可选条件
|
||
- **MySQL客户端**: 用于验证数据库(bash脚本需要)
|
||
- **PowerShell 5.1+**: 用于运行 PowerShell 脚本
|
||
- **Git Bash**: 用于运行 bash 脚本(Windows 环境)
|
||
|
||
## 测试脚本
|
||
|
||
提供了三个版本的测试脚本:
|
||
|
||
### 1. Bash 脚本(推荐)
|
||
|
||
**适用环境**: Linux、MacOS、Git Bash (Windows)
|
||
|
||
**执行方式**:
|
||
```bash
|
||
# 进入测试脚本目录
|
||
cd docs/test-scripts
|
||
|
||
# 赋予执行权限
|
||
chmod +x test-project-creation.sh
|
||
|
||
# 执行测试
|
||
./test-project-creation.sh
|
||
```
|
||
|
||
**优点**:
|
||
- 功能最完整
|
||
- 支持数据库验证
|
||
- 彩色输出
|
||
|
||
### 2. PowerShell 脚本
|
||
|
||
**适用环境**: Windows (PowerShell 5.1+)
|
||
|
||
**执行方式**:
|
||
```powershell
|
||
# 进入测试脚本目录
|
||
cd docs\test-scripts
|
||
|
||
# 执行测试
|
||
.\test-project-creation.ps1
|
||
```
|
||
|
||
**优点**:
|
||
- Windows 原生支持
|
||
- 交互式提示
|
||
- 无需额外工具
|
||
|
||
### 3. 批处理脚本
|
||
|
||
**适用环境**: Windows (CMD)
|
||
|
||
**执行方式**:
|
||
```cmd
|
||
cd docs\test-scripts
|
||
test-project-creation.bat
|
||
```
|
||
|
||
**优点**:
|
||
- 简单易用
|
||
- 无需额外工具
|
||
|
||
## 预期结果
|
||
|
||
### 成功指标
|
||
|
||
1. **创建项目成功**
|
||
- 响应 `code: 200`
|
||
- 响应包含 `lsfxProjectId` 字段(如:77)
|
||
- 数据库 `ccdi_project` 表中 `lsfx_project_id` 不为空
|
||
|
||
2. **参数校验**
|
||
- 空项目名称被拒绝
|
||
- 返回错误信息
|
||
|
||
3. **查询列表**
|
||
- 响应 `code: 200`
|
||
- 列表数据包含 `lsfxProjectId` 字段
|
||
|
||
4. **异常处理**(可选)
|
||
- Mock Server 不可用时返回错误
|
||
- 数据库无脏数据(事务回滚)
|
||
|
||
### 测试输出示例
|
||
|
||
```
|
||
==========================================
|
||
开始执行项目创建功能测试
|
||
==========================================
|
||
[INFO] 检查后端服务状态...
|
||
[INFO] ✓ 后端服务运行正常
|
||
[INFO] 获取访问令牌...
|
||
[INFO] ✓ 成功获取令牌
|
||
==========================================
|
||
测试场景1:创建项目成功
|
||
==========================================
|
||
[INFO] 请求数据: {"projectName":"集成测试项目_20260304_105500","description":"测试集成流水分析平台","configType":"default"}
|
||
[INFO] 响应内容: {"code":200,"msg":"项目创建成功","data":{...}}
|
||
[INFO] ✓ 项目创建成功
|
||
[INFO] ✓ 流水分析平台项目ID: 77
|
||
[INFO] 验证数据库...
|
||
[INFO] ✓ 数据库验证通过:lsfx_project_id 已正确保存
|
||
...
|
||
==========================================
|
||
测试结果汇总
|
||
==========================================
|
||
[INFO] 通过: 3
|
||
[ERROR] 失败: 0
|
||
[INFO] 总计: 3
|
||
[INFO] ✓ 所有测试通过!
|
||
```
|
||
|
||
## 手动测试(Swagger UI)
|
||
|
||
如果需要手动测试,可以使用 Swagger UI:
|
||
|
||
1. **访问 Swagger UI**
|
||
```
|
||
http://localhost:8080/swagger-ui/index.html
|
||
```
|
||
|
||
2. **获取 Token**
|
||
- 找到 `/login/test` 接口
|
||
- 点击 "Try it out"
|
||
- 输入 username: `admin`, password: `admin123`
|
||
- 点击 "Execute"
|
||
- 复制返回的 token
|
||
|
||
3. **设置认证**
|
||
- 点击页面顶部 "Authorize" 按钮
|
||
- 输入 `Bearer <token>`
|
||
- 点击 "Authorize"
|
||
|
||
4. **创建项目**
|
||
- 找到 `POST /ccdi/project` 接口
|
||
- 点击 "Try it out"
|
||
- 输入请求体:
|
||
```json
|
||
{
|
||
"projectName": "手动测试项目",
|
||
"description": "通过Swagger测试",
|
||
"configType": "default"
|
||
}
|
||
```
|
||
- 点击 "Execute"
|
||
- 查看响应,验证 `lsfxProjectId` 存在
|
||
|
||
5. **查询项目**
|
||
- 找到 `GET /ccdi/project/list` 接口
|
||
- 点击 "Try it out"
|
||
- 点击 "Execute"
|
||
- 验证返回数据包含 `lsfxProjectId`
|
||
|
||
## 故障排查
|
||
|
||
### 问题1: 后端服务连接失败
|
||
**原因**: 后端未启动或端口被占用
|
||
**解决**:
|
||
- 检查端口 8080 是否被占用
|
||
- 重启后端服务
|
||
|
||
### 问题2: Mock Server 连接失败
|
||
**原因**: Mock Server 未启动
|
||
**解决**:
|
||
```bash
|
||
cd lsfx-mock-server
|
||
python app.py
|
||
```
|
||
|
||
### 问题3: 获取 Token 失败
|
||
**原因**: 用户名或密码错误
|
||
**解决**:
|
||
- 确认使用 admin/admin123
|
||
- 检查后端日志
|
||
|
||
### 问题4: lsfxProjectId 为空
|
||
**原因**: 流水分析平台调用失败
|
||
**解决**:
|
||
- 检查 Mock Server 是否运行
|
||
- 查看后端日志中的错误信息
|
||
- 确认 `LsfxAnalysisClient` 配置正确
|
||
|
||
### 问题5: 数据库验证失败
|
||
**原因**: 数据库连接问题或字段未保存
|
||
**解决**:
|
||
- 检查数据库连接配置
|
||
- 确认 `lsfx_project_id` 字段已添加到表
|
||
- 查看后端日志
|
||
|
||
## 注意事项
|
||
|
||
1. **测试顺序**: 按照场景1→2→3→4的顺序执行
|
||
2. **数据清理**: 测试会创建临时项目数据,建议定期清理
|
||
3. **Mock Server**: 场景4需要停止 Mock Server,其他场景需要运行
|
||
4. **事务回滚**: 异常场景验证事务是否正确回滚
|
||
5. **权限**: 测试账号需要有项目创建权限
|
||
|
||
## 相关文档
|
||
|
||
- [设计文档](../design/2026-03-04-create-project-integrate-lsfx-design.md)
|
||
- [实施计划](../plans/2026-03-04-create-project-integrate-lsfx.md)
|
||
- [流水分析对接文档](../../assets/对接流水分析/兰溪-流水分析对接-新版.md)
|