提交 f3fd0bae authored 作者: 陈泽健's avatar 陈泽健

docs(performance): 更新 HANDOFF 会话进度

新增「请求详情接口名显示修复 + URL 去前缀需求」最新会话更新章节,记录 api_name 字段映射排查结论、用户 URL 去前缀需求及实现建议、E2E 验证结果与待办交接
Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
上级 6c925627
......@@ -2,9 +2,63 @@
> **生成时间**: 2026-08-25
> **当前分支**: `platform-auto-test`
> **最近提交**: `59cc11a1` feat(performance): 请求详情察看结果树 + 报告导出 Word/PDF/JSON + 采集标志修复
> **会话窗口**: 性能测试 — 请求详情察看结果树 + 报告导出 + 部署后 3 个问题排查修复
> **状态**: ✅ 功能实现 + 修复 + 5.60 部署 + 端到端自测通过 + **已提交推送**(feat `59cc11a1` 代码 + docs 文档两个 commit)
> **最近提交**: `6c925627` docs(performance): 请求详情/报告导出 PRD + 部署问题处理文档 + HANDOFF 会话进度
> **会话窗口**: 性能测试 — 请求详情接口名显示修复 + URL 去前缀
> **状态**: ✅ 接口名显示修复已确认 + E2E 数据链路验证通过;URL 去前缀体验待实现
> **会话窗口(上一窗口)**: 部署后 3 个问题排查修复 + 端到端自测通过(已提交推送)
---
## ⚡ 最新会话更新(2026-08-25)— 请求详情接口名显示修复 + URL 去前缀需求
### A. 会话背景
上一会话修复了「请求详情采集无数据」根因(`run_task_async()` 缺失 `request_detail_enabled`)并部署 5.60、E2E 自测通过后,用户打开请求详情察看结果树发现**接口名列显示为空**。用户提出交互偏好:**接口名不需要单独字段,直接从 URL 截取显示,并去掉 URL 值前面的 `https://IP` 前缀**
### B. 接口名显示为空 — 排查与修复 ✅
**排查结论**:字段映射不一致导致表格列拿不到值。
| 环节 | 修复前 | 修复后 |
|------|--------|--------|
| 后端采集 | `_save_request_details()` 写库 `api_name=d.get("api_name", "") or ""` | 不变(executor `_build_request_detail()` 已生成 api_name) |
| 后端 API 响应 | `api_name` 原样返回(snake_case,未做 camelCase 转换) | 不变 |
| 前端类型 | `RequestDetailItem``api_name: string`(snake_case) | **确认一致** ✅ |
| 前端表格列 | `prop="api_name" label="接口名"` | **确认一致** ✅ |
**结论**`api_name` 字段在后端(采集→存储→API 响应)与前端(类型定义→表格绑定)全链路均为 snake_case,绑定正确。E2E 验证确认后端返回 `item[0] keys: [api_name, assert_result, ..., status, success, url]`**数据在、绑定对、正常显示**——用户看到为空属于修复前旧数据(历史执行记录 `request_detail_enabled=off` 无明细),需重新执行任务。
### C. 用户需求:接口名从 URL 截取 + 去掉 `https://IP` 前缀
用户原话:"这个字段应该就只需要截取url就行了吧?去掉URL值的前面的https://IP"。
- **需求含义**:接口名列不再展示完整 URL(如 `https://192.168.5.44/meetingV3/api/message/book`),而是去掉 `https://192.168.5.44` 前缀,只显示路径部分(如 `/meetingV3/api/message/book`),或用截取的短名。
- **当前状态**:⏳ **待实现**(本会话仅记录需求;字段已存在且正常绑定,剩下的是显示层格式化)。
- **建议实现方案**(两处二选一或都做):
1. 前端显示层:表格列加 `formatter` —— 取 `row.url` 去掉 `https?://[^/]+` 前缀;或对 `api_name` 同样处理(`api_name` 为空时回退截取 `url`)。
2. 后端采集层:`_build_request_detail()` 生成 `api_name` 时直接存去前缀路径,一劳永逸(历史数据不受影响,需新执行才生效)。
### D. 本次会话验证(真实执行)
复用 `backend/scripts/probe_e2e_rerun.py`(5.60 容器内跑,任务 `perf_4fb439c759a94f54b3c64829714564fa`):
```
REQ DETAILS: total = 200 truncated = False request_detail_enabled = on ✅ 修复已生效
item[0] keys: [api_name, assert_result, ..., status, success, url] ✅ api_name 字段完整
SNAPSHOTS: total=3 resource ✅ targetResource ✅ targetResource.mysql: available=true ✅
REPORT: targetResourceSummary.mysql: available=true ✅
```
**结论**:请求明细 200 条、`request_detail_enabled=on``api_name` 字段存在且内容有效;监控回放 / 报告 MySQL 区块数据链路全部正常。
### E. 本次会话待办(交接给下一窗口)
| # | 任务 | 优先级 | 说明 |
|---|------|--------|------|
| 1 | **接口名显示优化:URL 去前缀** | P1 | 按 C 节方案实现(推荐后端 `_build_request_detail()` 存去前缀路径 + 前端 formatter 兜底双保险),改完需 `npm run build` 重新部署 5.60(前端 dist 热替换 + 后端文件 scp + `docker compose restart app`) |
| 2 | 旧执行记录明细为空 | 说明 | 历史记录 `request_detail_enabled=off` 无法回溯,需重新执行任务才有明细(已告知用户) |
| 3 | git commit + push | P0 | 本会话确认的无代码改动(文档类),如需提交用 `/GitCommit`;上一窗口代码修复 `6c925627` 已提交推送 |
| 4 | 遗留未提交文件 | — | `backend/scripts/probe_44_202.py``frontend/public/` 临时文件;`backend/data/test_platform.db` 工作区变更(按约定不提交) |
---
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论