2026年5月25日 赛博日记
生成时间:2026-05-25 23:58
📝 今日概要
深度优化接口自动化测试工具,核心聚焦文档精简、配置可塑性提升、断言策略对齐、以及运行日志可观测性增强。
🔍 核心技术进展
1. 接口自动化测试方案文档精简(来源:Cursor)
- 将约960行文档精简至约180行,结构从11章收敛为5章
- 删除冗余内容:角色分工、P0-P3落地表、流程编排线框、数据工厂Recipe、规划API长表、重复mermaid
- 保留核心:技术方案(架构图+四层模型+流水线)、使用方式、质量门禁与CI、附录
- 聚焦技术方案而非组织职责
2. Rule与LLM提示词配置能力(来源:Cursor)
- 在设置页新增「LLM提示词」页签,支持4类提示词切换编辑:
- 测试设计(主)
- JSON校验重试附加
- 用例自修复
- 任务快照llm_prompt.txt
- 后端新增
/settings/llm-prompt相关API(GET/PUT/POST reset) - 配置存储在
data/llm_prompt_config.json,无需重启服务即可生效
3. 断言策略统一优化(来源:Cursor)
- 去掉Rule与LLM路径中的JSON格式断言(
response_json is not None等) - 新增公共逻辑
app/assertion_normalizer.py:strip_json_format_assertions- 按接口响应类型自动裁剪断言- 非JSON响应(如image/jpeg)自动去掉所有
response_json.*
- 401状态码处理对齐:系统不用HTTP 401,鉴权失败统一用
status_code == 200+response_json.code != 40001 - Rule模式下鉴权类用例期望状态从401改为200
4. 接口选择与展示优化(来源:Cursor)
- 去掉Tag筛选,改为直接展示并勾选全部接口
- 接口列表表格调整:
- 「说明」列改为「接口」,移到第一列
- 默认不全选接口(
enabled: false) - 支持搜索、全选/全不选、批量控制Token注入
5. 运行日志可观测性增强(来源:Cursor)
- 用例工作台卡片点击可弹窗查看运行日志
- 修复运行日志展示:在断言失败时展示pytest实际发出的HTTP请求,而非
test_cases.json快照 - 日志顺序:
- 实际HTTP请求(pytest/requests已发送)
- 响应Body
- 用例定义(test_cases.json)
- 移除「问题提示」模块、Summary.md摘要预览模块
6. API环境管理(来源:Cursor)
- 设置页支持多地址管理、新增与切换
- 地址列表存储在
localStorage(llm_test_base_url_entries/llm_test_base_url_active_id) - 修复切换bug:
ensureValidState覆盖问题
7. Bug修复与根因分析(来源:Cursor)
- 单条用例调试报错:任务只存在内存里,后端重启后调试失败。修复:支持
output_dir回退、task_manifest.json持久化 - 大量404失败:根因是测试环境网关路由只转发
/ysb-user/api/*,而Swagger中有20条无/api/段的直连风格接口。建议运维确认或改用直连base_url - 断言错误:captcha类接口返回JPEG图片但被断言为JSON,已在Rule/LLM统一去掉JSON格式断言
8. 前端界面调整(来源:Claude)
- 三栏布局:左侧用例固定,右侧Execution & Result独立滚动
- CSS Grid实现
.workspace-grid固定高度,每个.panel独立滚动 - 全局文字颜色优化:浅色工作区不再使用浅灰字,提升可读性
9. 技术方案文档更新(来源:Cursor)
- 在文档§2.3表格中明确标注「跨接口响应参数提取」未实现
- 整理表格结构,改为三列:能力域 | 状态 | 说明
- 新增「造数与断言速查」表,提供排障建议
💡 深度洞察与经验教训
洞察
- 文档减负的价值:从960行到180行,核心信息密度大幅提升。删除组织职责、落地计划等非技术内容,让技术方案更聚焦。
- 配置可塑性:将LLM提示词、Rule规则暴露到设置页,让测试策略可快速调整,无需修改代码或重启服务。
- 断言策略分层:不同接口类型(JSON/图片/HTML)应采用不同断言策略。统一使用
response_json is not None是错误的,应按content_type自动裁剪。 - 401 vs 业务码:现代API设计多用业务信封(HTTP 200 + 业务code),而非HTTP状态码表达业务错误。测试工具需适配此模式。
教训
- 内存任务持久化缺失:初始设计任务只存内存,导致重启后调试失败。应一开始就考虑持久化(
task_manifest.json)或output_dir回退。 - 环境路由与文档不一致:Swagger文档的接口路径与实际测试环境网关路由不一致,导致大量404。应在生成前做可达性预检或在文档中标注。
- 断言策略一刀切:初期对captcha/图片接口也断言JSON格式,导致正常接口误报失败。应按接口类型自动适配断言策略。
- 401状态码系统差异:假设鉴权失败返回401是错误的,实际系统使用HTTP 200 + 业务码。应先了解系统规范再设计断言规则。
🚀 未来行动设想
- 实现跨接口响应参数提取,支持从上一接口响应中提取参数填入下游用例(如创建成功后返回ID,查询时使用该ID)
- 为无
/api/段的接口在生成前做可达性预检,或在接口列表中标注"testd可能404" - 支持接口依赖编排(FlowEditor),按业务流程顺序执行用例
- 数据工厂Recipe,支持预定义测试数据模板
- CI集成脚本:解析
execution_report.json做质量门禁检查(通过率、suspected_backend_defects、覆盖率)
📊 自动化统计
- 捕获 Memory 数:1(Claude工作记录,含3个会话)
- 笔记更新数:0(note-gen-sync目录下无最近24小时修改的.md文件)