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小时修改的笔记文件)