Files
ccdi/docs/tests/records/2026-03-23-credit-parsing-mock-server-backend-verification.md

109 lines
2.6 KiB
Markdown
Raw Normal View History

# 征信解析 Mock Server 后端验证记录
## 自动化验证
### 1. Payload Service 红绿验证
```bash
cd lsfx-mock-server
python3 -m pytest tests/test_credit_payload_service.py -v
```
- 首次执行结果:失败
- 原因:`services.credit_payload_service` 不存在
- 实现后再次执行结果:通过
### 2. 接口层红绿验证
```bash
cd lsfx-mock-server
python3 -m pytest tests/test_credit_api.py -v
```
- 首次执行结果:失败
- 原因:`/xfeature-mngs/conversation/htmlEval` 尚未注册,返回 `404`
- 实现后再次执行结果:通过
### 3. 启动注册验证
```bash
cd lsfx-mock-server
python3 -m pytest tests/test_startup.py -v
```
- 首次执行结果:失败
- 原因:主应用尚未注册征信解析路由
- 实现后再次执行结果:通过
### 4. 目标回归验证
```bash
cd lsfx-mock-server
python3 -m pytest tests/test_credit_payload_service.py tests/test_credit_api.py tests/test_startup.py -v
```
- 结果:`10 passed`
## 手工冒烟验证
### 启动过程
首次按设计默认端口 `8000` 冒烟时,发现本机已有其他 Python 进程占用 `8000``curl` 实际命中了外部已有服务而非当前 worktree 内的 Mock 服务。为避免环境噪音,本次手工验证改用 `18000` 端口前台启动当前应用:
```bash
cd lsfx-mock-server
PORT=18000 python3 main.py
```
启动日志确认:
- `Application startup complete.`
- `Uvicorn running on http://0.0.0.0:18000`
### 健康检查验证
```bash
curl -s http://127.0.0.1:18000/credit/health
```
返回结果:
```json
{"status":"healthy","service":"credit-mock"}
```
### 征信解析接口验证
准备示例文件:
```bash
printf '<html></html>' > /tmp/sample-credit.html
```
执行请求:
```bash
curl -s -X POST http://127.0.0.1:18000/xfeature-mngs/conversation/htmlEval \
-F model=LXCUSTALL \
-F hType=PERSON \
-F file=@/tmp/sample-credit.html
```
返回结果要点:
- `status_code``"0"`
- `message``"成功"`
- `payload` 包含 `lx_header``lx_debt``lx_publictype`
- `lx_header.report_time` 为日期格式字符串
- `lx_debt` 下 21 个字段、`lx_publictype` 下 6 个字段均已生成
### 服务停止
本次手工验证采用前台启动,验证完成后已通过 `Ctrl+C` 停止服务,确认未残留由本次验证启动的 Mock 进程。
## 结论
- 征信字段 schema 读取、稳定随机 payload 生成、错误码模拟、主应用路由注册均符合计划要求。
- 自动化测试与手工冒烟验证均通过。
- 本地环境存在外部进程占用 `8000` 的情况,但不影响当前实现正确性;本次已通过切换到空闲端口完成隔离验证。