326 lines
7.8 KiB
Markdown
326 lines
7.8 KiB
Markdown
|
|
# 后端功能测试报告
|
||
|
|
|
||
|
|
## 测试环境
|
||
|
|
- 后端地址: http://localhost:8080
|
||
|
|
- Swagger 地址: http://localhost:8080/swagger-ui/index.html
|
||
|
|
- 数据库: 116.62.17.81:3306/ccdi
|
||
|
|
- 测试时间: 2026-02-26 02:03:10 (UTC)
|
||
|
|
|
||
|
|
## 测试账号
|
||
|
|
- 用户名: admin
|
||
|
|
- 密码: admin123
|
||
|
|
- Token: `eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiOTJjODUzYWUtNDZjNi00ZmQ3LWExMDEtYTA5NzRmMzlmOGNkIn0.AUiHT2p-wcETEN1rZtgP8oSdx1kHWpYUT-TZmfjECON6T-p0M94mvwN1ySJmC4yeozu4VCZm13cRvkqwzH7Teg`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 测试结果
|
||
|
|
|
||
|
|
### 1. 登录接口测试
|
||
|
|
|
||
|
|
**接口:** `POST /login/test`
|
||
|
|
|
||
|
|
**请求:**
|
||
|
|
```bash
|
||
|
|
curl -X POST "http://localhost:8080/login/test" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"username":"admin","password":"admin123"}'
|
||
|
|
```
|
||
|
|
|
||
|
|
**响应:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"msg": "操作成功",
|
||
|
|
"code": 200,
|
||
|
|
"token": "eyJhbGciOiJIUzUxMiJ9..."
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 2. 查询模型列表接口
|
||
|
|
|
||
|
|
**接口:** `GET /ccdi/modelParam/modelList`
|
||
|
|
|
||
|
|
**请求:**
|
||
|
|
```bash
|
||
|
|
curl -X GET "http://localhost:8080/ccdi/modelParam/modelList" \
|
||
|
|
-H "Authorization: Bearer {token}"
|
||
|
|
```
|
||
|
|
|
||
|
|
**响应:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"msg": "操作成功",
|
||
|
|
"code": 200,
|
||
|
|
"data": [
|
||
|
|
{
|
||
|
|
"modelCode": "LARGE_TRANSACTION",
|
||
|
|
"modelName": "大额交易模型"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"modelCode": "SUSPICIOUS_FOREIGN_EXCHANGE",
|
||
|
|
"modelName": "可疑外汇交易模型"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"modelCode": "SUSPICIOUS_PART_TIME",
|
||
|
|
"modelName": "可疑兼职模型"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**验证点:**
|
||
|
|
- ✅ 返回3个模型
|
||
|
|
- ✅ 包含预期的模型代码和名称
|
||
|
|
- ✅ 响应格式正确
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3. 查询模型参数列表接口
|
||
|
|
|
||
|
|
#### 3.1 大额交易模型参数查询
|
||
|
|
|
||
|
|
**接口:** `GET /ccdi/modelParam/list?modelCode=LARGE_TRANSACTION`
|
||
|
|
|
||
|
|
**响应数据摘要:**
|
||
|
|
| 参数代码 | 参数名称 | 参数值 | 单位 |
|
||
|
|
|---------|---------|--------|------|
|
||
|
|
| SINGLE_TRANSACTION_AMOUNT | 单笔交易额 | 50000 | 元 |
|
||
|
|
| CUMULATIVE_TRANSACTION_AMOUNT | 累计交易额 | 5000000 | 元 |
|
||
|
|
| LARGE_CASH_DEPOSIT | 大额存现 | 200000 | 元 |
|
||
|
|
| FREQUENT_CASH_DEPOSIT | 短时多次存现 | 100000 | 元/4小时 |
|
||
|
|
| FREQUENT_TRANSFER | 频繁转账 | 10 | 次/日 |
|
||
|
|
| TRANSFER_FREQUENCY | 转账频率 | 1000000 | 元/日 |
|
||
|
|
|
||
|
|
**验证点:**
|
||
|
|
- ✅ 返回6个参数
|
||
|
|
- ✅ 所有参数字段完整
|
||
|
|
- ✅ 排序正确(sortOrder: 1-6)
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
#### 3.2 可疑外汇交易模型参数查询
|
||
|
|
|
||
|
|
**接口:** `GET /ccdi/modelParam/list?modelCode=SUSPICIOUS_FOREIGN_EXCHANGE`
|
||
|
|
|
||
|
|
**响应数据摘要:**
|
||
|
|
| 参数代码 | 参数名称 | 参数值 | 单位 |
|
||
|
|
|---------|---------|--------|------|
|
||
|
|
| SINGLE_PURCHASE_AMOUNT | 单笔购汇金额 | 50000 | 美元/笔 |
|
||
|
|
| SINGLE_SETTLEMENT_AMOUNT | 单笔结汇金额 | 50000 | 美元/笔 |
|
||
|
|
| CROSS_BORDER_REMITTANCE | 跨境汇款金额 | 200000 | 美元/笔 |
|
||
|
|
| MONTHLY_PURCHASE_TOTAL | 月度购汇总额 | 100000 | 美元/月 |
|
||
|
|
| MONTHLY_SETTLEMENT_TOTAL | 月度结汇总额 | 100000 | 美元/月 |
|
||
|
|
| FREQUENT_FOREX_TRADE | 频繁外汇交易 | 5 | 次/日 |
|
||
|
|
|
||
|
|
**验证点:**
|
||
|
|
- ✅ 返回6个参数
|
||
|
|
- ✅ 所有参数字段完整
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
#### 3.3 可疑兼职模型参数查询
|
||
|
|
|
||
|
|
**接口:** `GET /ccdi/modelParam/list?modelCode=SUSPICIOUS_PART_TIME`
|
||
|
|
|
||
|
|
**响应数据摘要:**
|
||
|
|
| 参数代码 | 参数名称 | 参数值 | 单位 |
|
||
|
|
|---------|---------|--------|------|
|
||
|
|
| MONTHLY_FIXED_INCOME | 月度固定收入 | 5000 | 元/月 |
|
||
|
|
| FIXED_COUNTERPARTY_TRANSFER | 固定对手转入 | 15000 | 元/季 |
|
||
|
|
| SUSPICIOUS_TIME_TRANSACTION | 非工作时间交易 | 20 | 次/月 |
|
||
|
|
|
||
|
|
**验证点:**
|
||
|
|
- ✅ 返回3个参数
|
||
|
|
- ✅ 所有参数字段完整
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 4. 保存参数配置接口
|
||
|
|
|
||
|
|
#### 4.1 正常保存测试
|
||
|
|
|
||
|
|
**接口:** `POST /ccdi/modelParam/save`
|
||
|
|
|
||
|
|
**请求:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"projectId": 0,
|
||
|
|
"modelCode": "LARGE_TRANSACTION",
|
||
|
|
"modelName": "大额交易模型",
|
||
|
|
"params": [
|
||
|
|
{
|
||
|
|
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
|
||
|
|
"paramName": "单笔交易额",
|
||
|
|
"paramDesc": "单笔超过该金额视为大额交易",
|
||
|
|
"paramValue": "60000",
|
||
|
|
"paramUnit": "元",
|
||
|
|
"sortOrder": 1
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**响应:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"msg": "保存成功",
|
||
|
|
"code": 200
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 5. 数据库验证
|
||
|
|
|
||
|
|
#### 5.1 第一次更新验证
|
||
|
|
|
||
|
|
**SQL:**
|
||
|
|
```sql
|
||
|
|
SELECT param_value, update_by, update_time
|
||
|
|
FROM ccdi_model_param
|
||
|
|
WHERE model_code = 'LARGE_TRANSACTION'
|
||
|
|
AND param_code = 'SINGLE_TRANSACTION_AMOUNT';
|
||
|
|
```
|
||
|
|
|
||
|
|
**结果:**
|
||
|
|
| param_value | update_by | update_time |
|
||
|
|
|-------------|-----------|-------------|
|
||
|
|
| 60000 | admin | 2026-02-25 18:03:10 |
|
||
|
|
|
||
|
|
**验证点:**
|
||
|
|
- ✅ param_value 已更新为 60000
|
||
|
|
- ✅ update_by 有值 (admin)
|
||
|
|
- ✅ update_time 有值
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 6. 安全性验证
|
||
|
|
|
||
|
|
#### 6.1 尝试修改其他字段
|
||
|
|
|
||
|
|
**请求:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"projectId": 0,
|
||
|
|
"modelCode": "LARGE_TRANSACTION",
|
||
|
|
"modelName": "大额交易模型(恶意修改)",
|
||
|
|
"params": [
|
||
|
|
{
|
||
|
|
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
|
||
|
|
"paramName": "单笔交易额(恶意修改)",
|
||
|
|
"paramDesc": "恶意修改描述",
|
||
|
|
"paramValue": "70000",
|
||
|
|
"paramUnit": "美元",
|
||
|
|
"sortOrder": 99
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**数据库验证结果:**
|
||
|
|
| 字段 | 预期值 | 实际值 | 结果 |
|
||
|
|
|------|--------|--------|------|
|
||
|
|
| param_name | 单笔交易额 | 单笔交易额 | ✅ 未被修改 |
|
||
|
|
| param_desc | 单笔超过该金额视为大额交易 | 单笔超过该金额视为大额交易 | ✅ 未被修改 |
|
||
|
|
| param_value | 70000 | 70000 | ✅ 正确更新 |
|
||
|
|
| param_unit | 元 | 元 | ✅ 未被修改 |
|
||
|
|
| sort_order | 1 | 1 | ✅ 未被修改 |
|
||
|
|
| update_by | admin | admin | ✅ 有值 |
|
||
|
|
| update_time | 有值 | 2026-02-25 18:03:33 | ✅ 有值 |
|
||
|
|
|
||
|
|
**结论:**
|
||
|
|
- ✅ 只有 param_value 字段被更新
|
||
|
|
- ✅ 其他字段(param_name、param_desc、param_unit、sort_order)保持不变
|
||
|
|
- ✅ 安全性验证通过
|
||
|
|
|
||
|
|
**状态:** ✅ 通过
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 接口汇总
|
||
|
|
|
||
|
|
| 序号 | 接口 | 方法 | 路径 | 状态 |
|
||
|
|
|------|------|------|------|------|
|
||
|
|
| 1 | 登录获取Token | POST | /login/test | ✅ 通过 |
|
||
|
|
| 2 | 查询模型列表 | GET | /ccdi/modelParam/modelList | ✅ 通过 |
|
||
|
|
| 3 | 查询模型参数(大额交易) | GET | /ccdi/modelParam/list?modelCode=LARGE_TRANSACTION | ✅ 通过 |
|
||
|
|
| 4 | 查询模型参数(外汇交易) | GET | /ccdi/modelParam/list?modelCode=SUSPICIOUS_FOREIGN_EXCHANGE | ✅ 通过 |
|
||
|
|
| 5 | 查询模型参数(兼职) | GET | /ccdi/modelParam/list?modelCode=SUSPICIOUS_PART_TIME | ✅ 通过 |
|
||
|
|
| 6 | 保存参数配置 | POST | /ccdi/modelParam/save | ✅ 通过 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 测试统计
|
||
|
|
|
||
|
|
- **通过:** 9 个测试
|
||
|
|
- **失败:** 0 个测试
|
||
|
|
- **总计:** 9 个测试
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 结论
|
||
|
|
|
||
|
|
✅ **所有测试通过**
|
||
|
|
|
||
|
|
后端功能完全符合预期:
|
||
|
|
1. 所有接口响应正常
|
||
|
|
2. 数据库更新正确
|
||
|
|
3. 审计字段自动填充
|
||
|
|
4. 安全性验证通过(只更新 param_value 字段)
|
||
|
|
5. 三种模型的参数查询均返回正确数据
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 附录: 测试命令汇总
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. 获取Token
|
||
|
|
curl -X POST "http://localhost:8080/login/test" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"username":"admin","password":"admin123"}'
|
||
|
|
|
||
|
|
# 2. 查询模型列表
|
||
|
|
curl -X GET "http://localhost:8080/ccdi/modelParam/modelList" \
|
||
|
|
-H "Authorization: Bearer {token}"
|
||
|
|
|
||
|
|
# 3. 查询模型参数
|
||
|
|
curl -X GET "http://localhost:8080/ccdi/modelParam/list?modelCode=LARGE_TRANSACTION" \
|
||
|
|
-H "Authorization: Bearer {token}"
|
||
|
|
|
||
|
|
# 4. 保存参数配置
|
||
|
|
curl -X POST "http://localhost:8080/ccdi/modelParam/save" \
|
||
|
|
-H "Authorization: Bearer {token}" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"projectId": 0,
|
||
|
|
"modelCode": "LARGE_TRANSACTION",
|
||
|
|
"modelName": "大额交易模型",
|
||
|
|
"params": [
|
||
|
|
{
|
||
|
|
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
|
||
|
|
"paramName": "单笔交易额",
|
||
|
|
"paramDesc": "单笔超过该金额视为大额交易",
|
||
|
|
"paramValue": "60000",
|
||
|
|
"paramUnit": "元",
|
||
|
|
"sortOrder": 1
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**测试人员:** Claude Code Agent
|
||
|
|
**报告生成时间:** 2026-02-26 02:05:00 (UTC)
|