2026-05-30 赛博日记 生成时间:2026-05-30 23:58
📝 今日概要 完成 TAPD 用例同步功能修复,从本地 SQLite 迁移至 Web API,并实现标签同步与 Cookie 自动刷新机制。
🔍 核心技术进展 TAPD 用例同步架构迁移 问题定位:用例库已迁移至 Web API,但同步代码仍从本地 SQLite 读取,导致"本地用例不存在"错误 技术方案: Electron testcase.service.ts 改为通过 webTestDataApi.getTestcase / updateTestcase 读写 使用 metadata.tapd_case_uid 建立与 TAPD 的数字 UID 关联 从 TAPD 拉取后自动写入 tapd_case_uid 关联字段 来源:memory/2026-05-30.md、claude_2026-05-30.md 标签同步格式修复 硬核发现:TAPD API 的 Labels 字段不接受字符串展示名,必须使用标签库的数字 UID 错误格式:{"Name": "已整理", "DisplayName": "已整理"} → HTTP 200 但标签不落库 正确格式:{"Name": "34451", "DisplayName": "已整理"} → 标签正确同步 实现方案: 新增 tapd_browser/testx_api.py 中的 search_case_labels / resolve_labels_patch 方法 从 TAPD 标签库按 DisplayName 匹配本地标签名 推送前自动解析标签,不存在的标签跳过并给出警告 来源:memory/2026-05-30.md、claude_2026-05-30.md Cookie 自动刷新与同步体验优化 自动刷新机制: 同步失败时检测 403、鉴权错误等疑似 Cookie 过期 自动执行 refresh_cookies.py 从本机 Chrome 读取 刷新成功后自动重试同步一次 用户体验改进: 同步过程全屏半透明遮罩 + 旋转 loading 动画 文案动态变化:“正在从 TAPD 拉取…” / “TAPD 凭证可能已过期,正在从 Chrome 刷新 Cookie…” 成功后提示"(已自动刷新 Cookie)" Cookie 有效期分析: 以最短字段为准:_wt 约 1~2 天,t_i_token 约 3 天,tapdsession 不定 建议每 1~2 天主动刷新一次,或同步失败时再刷新 来源:memory/2026-05-30.md、claude_2026-05-30.md Cookie 存储性能与安全权衡 性能分析: 读取 cookies.txt(738 字节)耗时 < 1ms,瓶颈在网络请求(数百 ms~数秒)和 Chrome 刷新(秒级) 迁移至 config.json 不会带来可感知加速 架构决策: 继续使用 cookies.txt,职责清晰(登录凭证与界面设置分离) cookies.txt 已在 .gitignore,减少误提交风险 主进程内存缓存 Cookie 可略微优化,但体感差异不大 来源:memory/2026-05-30.md 💡 深度洞察与经验教训 洞察:API 格式陷阱 TAPD API 返回 HTTP 200 并不表示请求成功。Labels 字段即使返回 200,格式错误时数据不会落库,导致"静默失败"。需要结合实际返回数据验证,而不能只看 HTTP 状态码。
...