8.1 KiB
8.1 KiB
后端功能测试报告
测试环境
- 后端地址: 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
请求:
curl -X POST "http://localhost:8080/login/test" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
响应:
{
"msg": "操作成功",
"code": 200,
"token": "eyJhbGciOiJIUzUxMiJ9..."
}
状态: ✅ 通过
2. 查询模型列表接口
接口: GET /ccdi/modelParam/modelList
请求:
curl -X GET "http://localhost:8080/ccdi/modelParam/modelList" \
-H "Authorization: Bearer {token}"
响应:
{
"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
请求:
{
"projectId": 0,
"modelCode": "LARGE_TRANSACTION",
"modelName": "大额交易模型",
"params": [
{
"paramCode": "SINGLE_TRANSACTION_AMOUNT",
"paramName": "单笔交易额",
"paramDesc": "单笔超过该金额视为大额交易",
"paramValue": "60000",
"paramUnit": "元",
"sortOrder": 1
}
]
}
响应:
{
"msg": "保存成功",
"code": 200
}
状态: ✅ 通过
5. 数据库验证
5.1 第一次更新验证
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 尝试修改其他字段
请求:
{
"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 个测试
结论
✅ 所有测试通过
后端功能完全符合预期:
- 所有接口响应正常
- 数据库更新正确
- 审计字段自动填充
- 安全性验证通过(只更新 param_value 字段)
- 三种模型的参数查询均返回正确数据
附录: 测试命令汇总
# 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)