Files
ccdi/doc/参数配置功能/03-后端功能测试.md

354 lines
7.3 KiB
Markdown
Raw Normal View History

2026-02-26 10:38:23 +08:00
# 模型参数配置功能 - 后端功能测试
## 任务概述
**任务编号:** 03
**任务名称:** 后端功能测试
**前置任务:** 02-后端业务逻辑开发
**预计工时:** 1小时
## 任务目标
启动后端服务,使用 Swagger 测试所有接口,确保功能正常。
---
## 开发步骤
### 1. 启动后端服务
#### 1.1 编译项目
```bash
# 在项目根目录执行
mvn clean compile
```
#### 1.2 启动应用
**方式一:使用 Maven**
```bash
mvn spring-boot:run
```
**方式二:使用启动脚本**
```bash
# Windows
ry.bat
# Linux/Mac
./ry.sh start
```
#### 1.3 验证启动成功
访问: http://localhost:8080
看到若依登录页面即表示启动成功。
---
### 2. 获取测试 Token
#### 2.1 登录获取 Token
**请求地址:**
```
POST http://localhost:8080/login/test?username=admin&password=admin123
```
**使用 curl:**
```bash
curl -X POST "http://localhost:8080/login/test?username=admin&password=admin123"
```
**响应示例:**
```json
{
"msg": "操作成功",
"code": 200,
"data": {
"token": "eyJhbGciOiJIUzUxMiJ9..."
}
}
```
**记录 Token:** 将返回的 token 值保存,后续测试需要使用。
---
### 3. Swagger 接口测试
#### 3.1 访问 Swagger UI
浏览器访问: http://localhost:8080/swagger-ui/index.html
#### 3.2 配置 Authorization
1. 点击右上角 "Authorize" 按钮
2. 在弹出框中输入: `Bearer <你的token>`
3. 点击 "Authorize" 确认
#### 3.3 测试接口1: 查询模型列表
**接口路径:** `GET /ccdi/modelParam/modelList`
**测试步骤:**
1. 在 Swagger UI 中找到 "模型参数配置" 分组
2. 点击 `GET /ccdi/modelParam/modelList` 接口
3. 点击 "Try it out"
4. 参数 `projectId` 留空(默认查询系统参数)
5. 点击 "Execute"
**预期响应:**
```json
{
"msg": "操作成功",
"code": 200,
"data": [
{
"modelCode": "LARGE_TRANSACTION",
"modelName": "大额交易模型"
},
{
"modelCode": "SUSPICIOUS_FOREIGN_EXCHANGE",
"modelName": "可疑外汇交易模型"
},
{
"modelCode": "SUSPICIOUS_PART_TIME",
"modelName": "可疑兼职模型"
}
]
}
```
#### 3.4 测试接口2: 查询模型参数列表
**接口路径:** `GET /ccdi/modelParam/list`
**测试步骤:**
1. 点击 `GET /ccdi/modelParam/list` 接口
2. 点击 "Try it out"
3. 参数填写:
- `modelCode`: `LARGE_TRANSACTION`
- `projectId`: 留空
4. 点击 "Execute"
**预期响应:**
```json
{
"msg": "操作成功",
"code": 200,
"data": [
{
"id": 1,
"modelCode": "LARGE_TRANSACTION",
"modelName": "大额交易模型",
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
"paramName": "单笔交易额",
"paramDesc": "单笔超过该金额视为大额交易",
"paramValue": "50000",
"paramUnit": "元",
"sortOrder": 1
},
...
]
}
```
#### 3.5 测试接口3: 保存参数配置
**接口路径:** `POST /ccdi/modelParam/save`
**测试步骤:**
1. 点击 `POST /ccdi/modelParam/save` 接口
2. 点击 "Try it out"
3. 在 Request body 中填写:
```json
{
"projectId": 0,
"modelCode": "LARGE_TRANSACTION",
"modelName": "大额交易模型",
"params": [
{
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
"paramName": "单笔交易额",
"paramDesc": "单笔超过该金额视为大额交易",
"paramValue": "60000",
"paramUnit": "元",
"sortOrder": 1
},
{
"paramCode": "CUMULATIVE_TRANSACTION_AMOUNT",
"paramName": "累计交易额",
"paramDesc": "年累计交易额超过该金额",
"paramValue": "6000000",
"paramUnit": "元",
"sortOrder": 2
}
]
}
```
4. 点击 "Execute"
**预期响应:**
```json
{
"msg": "保存成功",
"code": 200
}
```
#### 3.6 验证数据已更新
再次调用 `GET /ccdi/modelParam/list` 接口,确认参数值已更新为 60000 和 6000000。
---
### 4. 数据库验证
#### 4.1 查询参数数据
```sql
-- 查询大额交易模型的参数
SELECT id, model_code, param_name, param_value, update_by, update_time
FROM ccdi_model_param
WHERE model_code = 'LARGE_TRANSACTION'
ORDER BY sort_order;
```
**预期结果:**
```
id | model_code | param_name | param_value | update_by | update_time
---|---------------------|-------------------------|-------------|-----------|------------------
1 | LARGE_TRANSACTION | 单笔交易额 | 60000 | admin | 2026-02-26 10:30:00
2 | LARGE_TRANSACTION | 累计交易额 | 6000000 | admin | 2026-02-26 10:30:00
3 | LARGE_TRANSACTION | 大额存现 | 200000 | NULL | 2026-02-26 09:00:00
4 | LARGE_TRANSACTION | 短时多次存现 | 100000 | NULL | 2026-02-26 09:00:00
5 | LARGE_TRANSACTION | 频繁转账 | 10 | NULL | 2026-02-26 09:00:00
6 | LARGE_TRANSACTION | 转账频率 | 1000000 | NULL | 2026-02-26 09:00:00
```
验证点:
- ✅ 只有被修改的参数有 `update_by``update_time`
- ✅ 参数值已更新为提交的值
- ✅ 其他未修改的参数保持原值
---
### 5. 安全性验证
#### 5.1 验证只能修改阈值
尝试在保存接口中修改其他字段(如 param_name):
```json
{
"projectId": 0,
"modelCode": "LARGE_TRANSACTION",
"modelName": "大额交易模型",
"params": [
{
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
"paramName": "修改后的名称", // 尝试修改名称
"paramValue": "70000",
"paramUnit": "修改后的单位", // 尝试修改单位
"sortOrder": 1
}
]
}
```
**验证数据库:**
```sql
SELECT param_name, param_unit, param_value
FROM ccdi_model_param
WHERE param_code = 'SINGLE_TRANSACTION_AMOUNT';
```
**预期结果:**
-`param_value` 已更新为 70000
-`param_name` 仍为 "单笔交易额" (未改变)
-`param_unit` 仍为 "元" (未改变)
---
## 测试清单
完成以下测试后,本任务才算完成:
- [ ] 后端服务启动成功
- [ ] 获取 Token 成功
- [ ] Swagger 测试:查询模型列表接口正常
- [ ] Swagger 测试:查询参数列表接口正常
- [ ] Swagger 测试:保存参数接口正常
- [ ] 数据库验证:数据已正确更新
- [ ] 安全性验证:只能修改阈值字段
---
## 测试报告模板
完成测试后,请填写以下测试报告:
### 测试报告
**测试日期:** 2026-02-26
**测试人员:** ___________
**测试环境:**
- 数据库地址: ___________
- 后端地址: http://localhost:8080
**测试结果:**
| 测试项 | 预期结果 | 实际结果 | 是否通过 |
|----------|--------|------|------|
| 查询模型列表 | 返回3个模型 | | |
| 查询大额交易参数 | 返回6个参数 | | |
| 保存参数配置 | 返回成功 | | |
| 数据更新验证 | 数据已更新 | | |
| 安全性验证 | 只更新阈值 | | |
**发现问题:**
- (如有问题请记录)
**结论:**
- [ ] 通过
- [ ] 不通过
---
## 注意事项
1. **测试顺序**: 必须按照测试步骤的顺序执行
2. **Token 有效期**: Token 有效期 30 分钟,过期需重新获取
3. **数据库连接**: 确保数据库连接配置正确
4. **端口占用**: 确保 8080 端口未被占用
5. **日志查看**: 如遇问题,查看后端日志排查
---
## 下一步
完成本任务后,进入下一个任务: **04-前端代码开发.md**