2026年6月2日 赛博日记

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

📝 今日概要

深度推进 LLM-api-test 项目:完成 Swagger 集成、前置用例全链路执行、数据工厂三大核心能力,同时解决 mitmproxy 证书抓包和 Chrome 更新禁用两个基础设施问题。

🔍 核心技术进展

LLM-api-test 项目开发

Swagger 集成与深链解析(来源:memory/2026-06-02)

  • 实现 POST /openapi/parse 后端接口,支持通过 Swagger UI 链接直接拉取 OpenAPI 文档
  • 前端新增「Swagger 链接」文档来源,默认优先展示
  • 实现深链解析:从 #/controller/operationId 格式自动提取 tag 和 operationId,自动勾选对应接口
  • 单接口链接解析后可直接 Execute,无需打开选择页

前置用例全链路执行(来源:memory/2026-06-02)

  • 占位符语法统一为 ${变量名},支持在 URL、Query、Body、Headers 中使用
  • 调试执行时自动运行前置用例及其前置链(支持循环依赖检测)
  • 自动从前置响应中按 JSONPath 提取参数并注入(如 data.orderId
  • 鉴权同步:前置用例的 token/appId/authCode/cookies 会同步到当前用例
  • 支持前置用例完成后等待配置(0-300 秒)
  • 类型保留:注入时保持原始类型(int/bool),避免整数字段变成字符串

数据工厂功能(来源:memory/2026-06-02)

  • 支持三种变量类型:静态值、SQL 查询、Python 脚本
  • MySQL 连接仅从环境变量 DATA_FACTORY_MYSQL_* 读取,前端不配置数据源
  • 占位符与跨接口参数使用相同的 ${变量名} 语法
  • 变量优先级:用例级 > 全局级,支持覆盖
  • SQL 安全:仅允许 SELECT 语句,自动添加 LIMIT 限制
  • 前端新增数据工厂页面,支持变量管理、SQL 预览、批量建变量

用例管理优化(来源:memory/2026-06-02)

  • 修复入库时 case_id 重复问题:冲突时自动重命名为 TC_000xx,并增加唯一索引
  • 修复前置用例下拉选择样式问题:改用 mousedown + preventDefault 解决弹窗内菜单收起问题
  • 调试功能优化:点击调试直接弹出模态框,展示完整请求过程(请求配置、实际请求、响应、断言错误)
  • 实现可搜索的前置用例和响应字段选择器

基础设施问题解决

mitmproxy 证书问题排查(来源:memory/2026-06-02)

  • 定位 Android 7+ 证书限制:默认不信任用户安装的 CA 证书,抓第三方 App 需要 root 或修改应用配置
  • 提供完整排查流程:确认电脑 IP、配置 WiFi 代理、访问 http://mitm.it 下载证书

Chrome 自动更新禁用(来源:memory/2026-06-02)

  • 多管齐下策略:注册表策略 + 计划任务清理 + 重命名更新程序
  • 注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update
  • 关键策略值:AutoUpdateCheckPeriodMinutes=0, UpdateDefault=0, AutoUpdateDisabled=1

💡 深度洞察与经验教训

  • 洞察:跨接口测试的关键痛点是参数传递和鉴权同步。通过 ${变量名} 统一占位符语法,并在执行链路中自动解析和注入,大幅降低了配置复杂度。
  • 教训
    • 前端下拉组件在弹窗内使用 click 事件会导致菜单先关闭后重新打开的经典问题,改用 mousedown + stopPropagation 解决
    • JSON 字段值替换时若一律转字符串会导致类型错误,需要保留原始类型;当字段值整段是占位符时,直接替换为原始类型值
    • MySQL 连接错误 10061 通常表示端口或主机 IP 配置错误,而 1045 才是认证失败(密码/权限问题)
    • 用例编号冲突会导致前置用例选择逻辑误判,需要用 caseId + 名称 + 方法 + 路径 综合判断
    • 环境变量修改后需重启 uvicorn 才能生效(get_settings() 有缓存机制)

🚀 未来行动设想

  • 数据工厂未来可支持更多数据源类型(Redis、MongoDB、HTTP 请求等)
  • 前置用例依赖关系可视化展示,帮助理解测试流程
  • Swagger 链接进一步解析 request/response 示例
  • 考虑添加前置用例循环依赖的图示警告
  • 用例编号冲突时提供手动指定编号的选项

📊 自动化统计

  • 捕获 Memory 数:2(当日记忆 + Claude 工作记录)
  • 笔记更新数:0(无最近24小时修改的笔记文件)