2026-06-03 赛博日记

生成时间:2026-06-03 23:58

📝 今日概要

完成 LLM-api-test 项目的接口测试能力全面升级,包括 Swagger 深链解析、数据工厂、前置用例优化等核心功能,并成功部署后端服务。

🔍 核心技术进展

1. Swagger 深链解析与自动定位(来源:memory/2026-06-03.md)

  • 支持从 Swagger UI 带链接直接定位并勾选对应接口
  • hash 解析逻辑:#/controller/operationId → 自动匹配 tag 和 operationId
  • 若只匹配到 1 个接口:不自动打开选择页,可直接 Execute
  • 若只有 controller:勾选该 tag 下全部接口

2. 前置用例系统优化(来源:memory/2026-06-03.md)

  • 循环依赖检测:构建前置关系图,禁止形成环
  • 可搜索选择器:支持按名称、caseId、方法、路径过滤
  • 鉴权同步:跨接口链路中从前置用例同步 token、appId、authCode、cookies
  • 等待时间配置:前置完成后可设置等待 0-300 秒
  • 响应字段解析:根据前置用例实际调试响应解析可选字段

3. 数据工厂功能(来源:memory/2026-06-03.md)

  • 三种模式:静态变量、SQL 查询、Python 脚本
  • 优先级设计:全局变量 → 跨接口提取(用例级覆盖全局)
  • 安全措施:SQL 仅允许 SELECT 语句,自动 LIMIT
  • 脚本模式:支持完整 Python(插件式),可任意 import
  • 配置统一:MySQL 连接从 .env / .evn 读取,前端移除数据源配置

4. 占位符注入改进(来源:memory/claude_2026-06-03.md)

  • 无引号占位符:支持 "orderId": ${orderId}(合法 JSON)
  • 类型保留:注入时保留原始类型(int、bool 等),避免整数变字符串
  • 调试链路:调试时先运行前置用例,按 JSONPath 提取参数,再替换占位符

5. Bug 修复与改进(来源:memory/2026-06-03.md + memory/claude_2026-06-03.md)

  • 数据工厂持久化 bug:弹窗"确定"只更新内存,需点"保存配置"才写入文件
  • case_id 重复:入库时自动分配全局唯一编号,历史数据自动修复
  • token 不一致:调试路径鉴权注入必须与 pytest 对齐,否则跨接口请求时 token 不一致
  • Swagger 链接解析报错fetch_openapi_source() 缺少 doc_sources_path 参数

6. 部署与 UI 升级(来源:memory/2026-06-03.md)

  • Docker 部署:通过 SSH 连接 Jenkins 部署机执行 docker_deploy.sh
  • 前端 UI 升级:窄侧栏图标导航 + 毛玻璃主内容区设计,对齐 ysb_ai_auto_electron 项目
  • 标签筛选改进:多选取交集(AND),标签从数据库动态加载

💡 深度洞察与经验教训

  • 洞察:数据工厂持久化设计需区分场景——全局变量适合项目级复用数据(如固定门店 ID),跨接口提取适合链路绑定数据(如 token、orderId)
  • 洞察:工具定位要清晰——Apifox 负责联调、Mock 和复杂业务流程场景;LLM-api-test 负责 OpenAPI 批量冒烟、覆盖率统计和 CI 回归
  • 洞察:差异化优势在于"生成 → 执行 → 评测 → 归因"流水线,能区分用例写错和后端真实 Bug
  • 教训:调试路径的鉴权注入必须与 pytest 对齐,否则跨接口请求时 token 不一致会导致"无法找到对应的订单"
  • 教训:Python 沙箱中 strftime 可能触发 locale 导入,建议用 .isoformat() 更稳妥
  • 教训:MySQL 连接错误 10061 表示端口未监听,1045 表示认证失败(但需区分客户端 IP 和目标 IP)

🚀 未来行动设想

  • 扩展数据工厂存储模型:按环境(dev/test)或按测试计划隔离变量
  • 接口测试 Skill 方案文档持续更新(当前位于 docs/cursor-接口测试-Skill方案.md
  • 前端标签筛选改为多选取交集(AND),标签选项从数据库动态加载
  • 用例列表展示时间改为 update_time,排序按最新修改时间倒序

📊 自动化统计

  • 捕获 Memory 数:2(2026-06-03.md + claude_2026-06-03.md)
  • 笔记更新数:0(note-gen-sync 目录下无最近 24 小时修改的 .md 文件)