修改目录
This commit is contained in:
344
assets/测试文档/流水分析接口测试脚本.md
Normal file
344
assets/测试文档/流水分析接口测试脚本.md
Normal file
@@ -0,0 +1,344 @@
|
||||
# 流水分析接口测试脚本
|
||||
|
||||
## 环境配置
|
||||
|
||||
- **Mock Server 地址**: http://localhost:8000
|
||||
- **后端服务地址**: http://localhost:8080
|
||||
- **测试账号**: admin / admin123
|
||||
|
||||
## 测试说明
|
||||
|
||||
本测试脚本用于验证 ccdi-lsfx 模块的 form-data 接口改造。所有接口已从 JSON 格式改为 multipart/form-data 格式。
|
||||
|
||||
---
|
||||
|
||||
## 1. 获取 Token
|
||||
|
||||
**接口说明**: 获取访问令牌
|
||||
|
||||
**请求示例**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/lsfx/test/getToken" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "projectNo=902000_202603021400" \
|
||||
-F "entityName=902000_202603021400" \
|
||||
-F "userId=testuser" \
|
||||
-F "userName=测试用户" \
|
||||
-F "orgCode=ORG001" \
|
||||
-F "entityId=ENTITY001" \
|
||||
-F "role=审查人员" \
|
||||
-F "analysisType=流水分析" \
|
||||
-F "departmentCode=DEPT001"
|
||||
```
|
||||
|
||||
**预期响应**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": {
|
||||
"projectId": 123,
|
||||
"token": "mock-token-xxx",
|
||||
"groupId": 456
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 上传文件
|
||||
|
||||
**接口说明**: 上传银行流水文件
|
||||
|
||||
**请求示例**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/lsfx/test/uploadFile" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "groupId=456" \
|
||||
-F "file=@test-data.xlsx"
|
||||
```
|
||||
|
||||
**预期响应**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": {
|
||||
"uploadLogList": [
|
||||
{
|
||||
"logId": 789,
|
||||
"fileName": "test-data.xlsx",
|
||||
"uploadTime": "2026-03-03 14:00:00"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 拉取行内流水
|
||||
|
||||
**接口说明**: 从核心系统拉取行内流水数据
|
||||
|
||||
**请求示例**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/lsfx/test/fetchInnerFlow" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "groupId=456" \
|
||||
-F "customerNo=CUST001" \
|
||||
-F "dataChannelCode=CHANNEL001" \
|
||||
-F "requestDateId=20260303" \
|
||||
-F "dataStartDateId=20260101" \
|
||||
-F "dataEndDateId=20260303" \
|
||||
-F "uploadUserId=testuser"
|
||||
```
|
||||
|
||||
**预期响应**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": {
|
||||
"code": "SUCCESS",
|
||||
"message": "拉取成功",
|
||||
"fetchTime": "2026-03-03 14:00:00"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 检查解析状态
|
||||
|
||||
**接口说明**: 检查文件解析状态
|
||||
|
||||
**请求示例**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/lsfx/test/checkParseStatus" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "groupId=456" \
|
||||
-F "inprogressList=789,790,791"
|
||||
```
|
||||
|
||||
**预期响应**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": {
|
||||
"parsing": false,
|
||||
"pendingList": [
|
||||
{
|
||||
"logId": 789,
|
||||
"fileName": "test-data.xlsx",
|
||||
"status": "COMPLETED"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 获取银行流水
|
||||
|
||||
**接口说明**: 分页获取银行流水明细
|
||||
|
||||
**请求示例**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/lsfx/test/getBankStatement" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "groupId=456" \
|
||||
-F "logId=789" \
|
||||
-F "pageNow=1" \
|
||||
-F "pageSize=20"
|
||||
```
|
||||
|
||||
**预期响应**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "操作成功",
|
||||
"data": {
|
||||
"totalCount": 100,
|
||||
"totalPage": 5,
|
||||
"currentPage": 1,
|
||||
"pageSize": 20,
|
||||
"list": [
|
||||
{
|
||||
"transactionDate": "2026-01-15",
|
||||
"transactionAmount": 10000.00,
|
||||
"balance": 50000.00,
|
||||
"summary": "转账收入"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 测试步骤
|
||||
|
||||
### 步骤 1: 启动 Mock Server
|
||||
|
||||
确保 Mock Server 已启动并监听在 `http://localhost:8000`。
|
||||
|
||||
```bash
|
||||
# 示例:如果使用 Python Flask
|
||||
python lsfx-mock-server/app.py
|
||||
```
|
||||
|
||||
### 步骤 2: 启动后端服务
|
||||
|
||||
```bash
|
||||
cd ruoyi-admin
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
或使用 Windows 脚本:
|
||||
|
||||
```bash
|
||||
ry.bat
|
||||
```
|
||||
|
||||
### 步骤 3: 获取访问 Token
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/login/test?username=admin&password=admin123"
|
||||
```
|
||||
|
||||
记录返回的 token。
|
||||
|
||||
### 步骤 4: 执行接口测试
|
||||
|
||||
按照上述接口顺序依次测试。
|
||||
|
||||
### 步骤 5: 验证日志
|
||||
|
||||
检查后端日志,确认:
|
||||
|
||||
- ✅ 所有请求都使用了 `postFormData` 方法
|
||||
- ✅ Content-Type 为 `multipart/form-data`
|
||||
- ✅ 响应正常解析
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q1: 接口返回 401 Unauthorized
|
||||
|
||||
**解决方案**: 先调用登录接口获取 token,并在后续请求中添加 Authorization header。
|
||||
|
||||
### Q2: 接口返回 400 Bad Request
|
||||
|
||||
**可能原因**:
|
||||
|
||||
- 参数名称错误
|
||||
- 缺少必填参数
|
||||
- 参数格式不正确
|
||||
|
||||
**解决方案**: 检查请求参数是否完整且格式正确。
|
||||
|
||||
### Q3: 文件上传失败
|
||||
|
||||
**可能原因**:
|
||||
|
||||
- 文件路径错误
|
||||
- 文件大小超过限制(默认 10MB)
|
||||
|
||||
**解决方案**:
|
||||
|
||||
- 使用绝对路径或正确的相对路径
|
||||
- 检查文件大小
|
||||
|
||||
---
|
||||
|
||||
## 技术要点
|
||||
|
||||
### Form-Data 格式说明
|
||||
|
||||
本次改造将所有接口从 JSON 格式改为 multipart/form-data 格式:
|
||||
|
||||
**改造前(JSON)**:
|
||||
|
||||
```
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"projectNo": "902000_202603021400",
|
||||
"entityName": "902000_202603021400",
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
**改造后(Form-Data)**:
|
||||
|
||||
```
|
||||
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
|
||||
|
||||
------WebKitFormBoundary
|
||||
Content-Disposition: form-data; name="projectNo"
|
||||
|
||||
902000_202603021400
|
||||
------WebKitFormBoundary
|
||||
Content-Disposition: form-data; name="entityName"
|
||||
|
||||
902000_202603021400
|
||||
------WebKitFormBoundary
|
||||
...
|
||||
```
|
||||
|
||||
### ObjectUtil 工具类
|
||||
|
||||
改造中新增了 `ObjectUtil` 工具类,用于简化对象转 Map 的操作:
|
||||
|
||||
```java
|
||||
// 改造前
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("projectNo", request.getProjectNo());
|
||||
params.put("entityName", request.getEntityName());
|
||||
// ... 手动添加所有字段
|
||||
|
||||
// 改造后
|
||||
Map<String, Object> params = ObjectUtil.toMapIgnoreNull(request);
|
||||
// 只需手动添加特殊字段
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 测试清单
|
||||
|
||||
- [ ] 接口1:获取 Token - 通过
|
||||
- [ ] 接口2:上传文件 - 通过
|
||||
- [ ] 接口3:拉取行内流水 - 通过
|
||||
- [ ] 接口4:检查解析状态 - 通过
|
||||
- [ ] 接口5:获取银行流水 - 通过
|
||||
- [ ] 日志验证 - 所有接口都使用 postFormData
|
||||
- [ ] 异常处理 - 正常捕获并处理异常
|
||||
|
||||
---
|
||||
|
||||
## 测试结果记录
|
||||
|
||||
**测试日期**: 2026-03-03
|
||||
|
||||
**测试环境**:
|
||||
|
||||
- Mock Server: http://localhost:8000
|
||||
- 后端服务: http://localhost:8080
|
||||
|
||||
**测试结论**: _待填写_
|
||||
|
||||
**问题记录**: _待填写_
|
||||
Reference in New Issue
Block a user