354 lines
7.3 KiB
Markdown
354 lines
7.3 KiB
Markdown
# 模型参数配置功能 - 后端功能测试
|
|
|
|
## 任务概述
|
|
|
|
**任务编号:** 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**
|