167 lines
4.2 KiB
Markdown
167 lines
4.2 KiB
Markdown
|
|
# 利率定价流程 API 测试报告
|
||
|
|
|
||
|
|
## 测试概述
|
||
|
|
|
||
|
|
**测试时间**: 2025-01-20 10:34:00
|
||
|
|
**测试环境**: http://localhost:8080
|
||
|
|
**测试账号**: admin / admin123
|
||
|
|
**测试工具**: 自动化测试脚本 (run-api-tests.sh)
|
||
|
|
|
||
|
|
## 测试结果汇总
|
||
|
|
|
||
|
|
| 指标 | 数值 |
|
||
|
|
|------|------|
|
||
|
|
| 总测试数 | 13 |
|
||
|
|
| 通过 | 3 |
|
||
|
|
| 失败 | 10 |
|
||
|
|
| 通过率 | 23% |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 详细测试结果
|
||
|
|
|
||
|
|
### ✅ 通过的测试用例 (3个)
|
||
|
|
|
||
|
|
| 序号 | 测试用例 | 说明 |
|
||
|
|
|------|----------|------|
|
||
|
|
| 11 | 异常测试-客户内码为空 | 正确返回验证错误 |
|
||
|
|
| 12 | 异常测试-贷款利率为空 | 正确返回验证错误 |
|
||
|
|
| 13 | 异常测试-查询不存在的流程 | 正确返回记录不存在 |
|
||
|
|
|
||
|
|
### ❌ 失败的测试用例 (10个)
|
||
|
|
|
||
|
|
| 序号 | 测试用例 | 失败原因 |
|
||
|
|
|------|----------|----------|
|
||
|
|
| 1 | 发起流程-个人客户信用贷款 | 数据库表不存在 |
|
||
|
|
| 2 | 发起流程-企业客户抵押贷款 | 数据库表不存在 |
|
||
|
|
| 3 | 发起流程-农业担保贷款 | 数据库表不存在 |
|
||
|
|
| 4 | 发起流程-个人客户质押贷款 | 数据库表不存在 |
|
||
|
|
| 5 | 查询流程列表-默认分页 | 数据库表不存在 |
|
||
|
|
| 6 | 查询流程列表-筛选个人客户 | URL编码问题 |
|
||
|
|
| 7 | 查询流程列表-筛选企业客户 | URL编码问题 |
|
||
|
|
| 8 | 查询流程列表-搜索张三 | URL编码问题 |
|
||
|
|
| 9 | 查询流程列表-筛选信用贷款 | URL编码问题 (中文参数) |
|
||
|
|
| 10 | 查询流程详情-CUST20250119001 | 数据库表不存在 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 问题分析
|
||
|
|
|
||
|
|
### 🔴 严重问题
|
||
|
|
|
||
|
|
#### 1. 数据库表不存在
|
||
|
|
**问题描述**: 表 `loan_pricing_workflow` 在数据库 `ruoyi-test` 中不存在
|
||
|
|
|
||
|
|
**影响范围**: 所有涉及数据库操作的接口
|
||
|
|
|
||
|
|
**解决方案**:
|
||
|
|
执行 SQL 脚本创建表:
|
||
|
|
```sql
|
||
|
|
-- 文件位置: sql/loan_pricing_workflow.sql
|
||
|
|
-- 需要在数据库 ruoyi-test 中执行此脚本
|
||
|
|
```
|
||
|
|
|
||
|
|
**执行命令** (需要数据库访问权限):
|
||
|
|
```bash
|
||
|
|
mysql -h 116.62.17.81 -P 40627 -u root -p ruoyi-test < sql/loan_pricing_workflow.sql
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🟡 中等问题
|
||
|
|
|
||
|
|
#### 2. URL编码问题
|
||
|
|
**问题描述**: 中文参数在 URL 中未正确编码
|
||
|
|
|
||
|
|
**影响范围**:
|
||
|
|
- 查询流程列表时的筛选功能 (客户类型、担保方式等)
|
||
|
|
|
||
|
|
**解决方案**:
|
||
|
|
在测试脚本中对中文参数进行 URL 编码
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## API 接口清单
|
||
|
|
|
||
|
|
| 接口 | 方法 | 路径 | 状态 |
|
||
|
|
|------|------|------|------|
|
||
|
|
| 发起利率定价流程 | POST | `/loanPricing/workflow/create` | ⚠️ 待数据库表创建后测试 |
|
||
|
|
| 查询流程列表 | GET | `/loanPricing/workflow/list` | ⚠️ 待数据库表创建后测试 |
|
||
|
|
| 查询流程详情 | GET | `/loanPricing/workflow/{serialNum}` | ⚠️ 待数据库表创建后测试 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 功能验证
|
||
|
|
|
||
|
|
### 参数验证 ✅
|
||
|
|
- 必填字段验证正常工作
|
||
|
|
- 客户内码 (custIsn) 不能为空
|
||
|
|
- 贷款利率 (loanRate) 不能为空
|
||
|
|
- 客户类型 (custType) 不能为空
|
||
|
|
- 担保方式 (guarType) 不能为空
|
||
|
|
|
||
|
|
### 异常处理 ✅
|
||
|
|
- 查询不存在的记录时正确返回错误提示
|
||
|
|
- 参数验证失败时返回明确的错误信息
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 后续步骤
|
||
|
|
|
||
|
|
### 优先级 P0 (必须完成)
|
||
|
|
1. **创建数据库表**
|
||
|
|
- 执行 `sql/loan_pricing_workflow.sql` 脚本
|
||
|
|
- 验证表创建成功
|
||
|
|
|
||
|
|
2. **重新执行测试**
|
||
|
|
- 运行 `bash run-api-tests.sh`
|
||
|
|
- 确认所有功能测试通过
|
||
|
|
|
||
|
|
### 优先级 P1 (建议完成)
|
||
|
|
1. **修复 URL 编码问题**
|
||
|
|
- 更新测试脚本处理中文参数
|
||
|
|
- 或使用 POST + JSON body 进行查询
|
||
|
|
|
||
|
|
2. **补充测试用例**
|
||
|
|
- 添加更多边界条件测试
|
||
|
|
- 添加并发测试
|
||
|
|
- 添加性能测试
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 附录
|
||
|
|
|
||
|
|
### 测试数据样本
|
||
|
|
|
||
|
|
**个人客户信用贷款**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"custIsn": "CUST20250119001",
|
||
|
|
"custType": "个人",
|
||
|
|
"guarType": "信用",
|
||
|
|
"applyAmt": "50000",
|
||
|
|
"loanRate": "4.35",
|
||
|
|
"custName": "张三"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**企业客户抵押贷款**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"custIsn": "CUST20250119002",
|
||
|
|
"custType": "企业",
|
||
|
|
"guarType": "抵押",
|
||
|
|
"applyAmt": "500000",
|
||
|
|
"loanRate": "3.85",
|
||
|
|
"custName": "测试科技有限公司"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 相关文件
|
||
|
|
- 测试脚本: `run-api-tests.sh`
|
||
|
|
- SQL 脚本: `sql/loan_pricing_workflow.sql`
|
||
|
|
- Controller: `ruoyi-loan-pricing/src/main/java/com/ruoyi/loanpricing/controller/LoanPricingWorkflowController.java`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**报告生成时间**: 2025-01-20 10:34:00
|
||
|
|
**测试执行者**: Claude Code AI Assistant
|