2026-05-27 赛博日记
生成时间:2026-05-27 23:58
📝 今日概要
完成测试计划标签系统标准化与跨环境一致性修复,落地接口自动化测试Cursor Skill,解决Web自动化日志重复与浏览器会话复用问题。
🔍 核心技术进展
测试计划标签系统重构(来源:memory/2026-05-27.md)
- 标签存储格式标准化:统一使用JSON数组格式(每项一个标签),如
["已整理","PC-AI自动化"],而非["已整理,PC-AI自动化"]单元素逗号拼接 - SQL查询方案:回退使用
@>精确匹配JSON数组元素,而非兼容单元素逗号拆分的复杂查询 - 测试计划执行后自动写标签:计划自然跑完后自动写入「通过」或「未通过」标签,保留业务标签,互斥替换运行状态标签
- 标签筛选扩展:前端增加「通过」「未通过」筛选选项,解决正式服与测试服筛选不一致问题
- 数据规范化:通过重新导入数据将标签从
["已整理,PC-AI自动化"]统一为["已整理","PC-AI自动化"]
接口自动化测试Cursor Skill落地(来源:memory/claude_2026-05-27.md)
- Skill结构:
.cursor/skills/api-interface-test/目录,可移植至~/.cursor/skills/ - 工作流:Swagger文档解析 → Cursor Agent生成用例 → 鉴权注入 → pytest执行 → 评测 → 报告
- CLI入口:
cli.py统一入口,支持parse→prepare-generate→validate-generation→execute→prepare-repair→apply-repair - 鉴权注入:
auth_profile_resolver.py按base_url匹配AuthProfile.match_hosts,自动注入token - 用例生成:Cursor Agent按
llm_prompt.txt生成cursor_generation.json,无需额外LLM配置
Web自动化优化(来源:memory/claude_2026-05-27.md)
- 重复日志修复:在
runner.py中只安装一次get_model_output日志包装,用标记位防止叠加;批量执行时去掉二次「最终结果」日志 - 前置用例执行优化:
runPreconditionCases.ts将前置+主用例步骤合并为单个tasks数组,通过keep_alive_between_agent_runs=True保持浏览器会话 - 测试报告优化:错误截图支持点击放大(
.gallery-img-wrap、.fail-screenshot),报告缓存在上传成功后覆盖本地缓存
项目级Skill(来源:memory/claude_2026-05-27.md)
- 触发词设计:「部署后端」「推送代码」等自然语言触发
- Git工作流:push-code skill整合同步(fetch dev/main)、编译、提交、推送全流程,未提交改动自动stash处理
- 部署自动化:deploy-backend skill通过SSH远程执行部署脚本
💡 深度洞察与经验教训
洞察:项目级Skill的价值在于把重复的CLI操作转化为自然语言触发,大幅提升开发效率。标签系统的标准化应在导入层就统一格式,避免后续查询复杂度上升。Cursor Agent与CLI的分工(用例生成给LLM,执行给脚本)既灵活又可靠。
教训:
- 数据库查询陷阱:
tags @> '["标签"]'只能匹配完整JSON数组元素,对单元素内逗号拼接(如["标签A,标签B"])永远匹配不到,导致正式服筛选失效 - 本地vs正式环境差异:同一代码在不同环境表现不同,通常不是「没迁移」,而是运行时差异(容器版本、数据格式、请求是否到达后端)
- 重新导入的副作用:
update策略的用例导入会覆盖运行状态标签和步骤附件,不是「只修标签」的轻量方案 - monkey-patch叠加陷阱:在Web自动化runner中,每步都重复monkey-patch日志函数会导致N层嵌套,造成日志重复输出
- 数据库查询陷阱:
🚀 未来行动设想
- 为Web自动化添加更多全局系统提示词,如「避免误操作删除数据」「确认弹窗不要直接点击」等
- 接口测试Skill扩展支持更多认证方式(OAuth、Bearer Token等)
- 测试报告增加趋势分析(历史通过率变化)
- 对正式库进行标签数据规范化脚本执行,彻底解决历史数据格式不一致问题
📊 自动化统计
- 捕获 Memory 数:2(memory/2026-05-27.md、memory/claude_2026-05-27.md)
- 笔记更新数:0(note-gen-sync目录无最近24小时修改的文件)