
我们现在的现状是完全没有接口自动化,所有东西全靠手点。两周一个迭代的节奏,不定时还有临时上线,回归只能挑最核心的三五个功能跑一遍。结果就是线上问题频发。 更头疼的是,我们根本抽不出时间来改变这个现状。
有没有什么办法,能让我们不用写一行测试代码,就能先把最基础的接口回归跑起来?
我们要实现一个真正的"全自动测试"体验: 自动触发:自动部署后直接触发 自动生成:根据项目代码,自动解析API定义并生成测试场景 自动执行:自动触发测试计划,无需手动配置环境和参数 自动分析:智能解读测试报告,输出结构化的问题和改进建议
V1版本范围:优先支持OpenAPI规范的单服务单环境,覆盖核心Happy Path。测试数据隔离、Fixture管理、非幂等写操作保护等高级功能将在V2版本实现。
整个系统采用模块化设计,以Hive Agent为核心,通过MCP协议与GitHub和OInfer进行交互,实现端到端的自动化测试流程。
用户 → Hive agent (skill: oinfer-test)
│
├─ 记忆检索 → 检查是否已有该服务的测试上下文
│
├─ [首次/强制重建] GitHub MCP → 读取代码 → 解析API定义
│
├─ OInfer MCP → 创建API定义、测试场景和自动化计划
│
├─ OInfer MCP → 触发测试执行(注册回调地址)
│
├─ [OInfer 回调] → 测试完成后主动通知 Hive
│
├─ LLM分析 → 生成结构化结论
│
└─ 记忆更新 → 持久化测试上下文这个架构的核心优势在于: 完全解耦:Hive负责智能决策和流程编排,OInfer负责测试执行 事件驱动:采用回调机制而非轮询,更高效、更实时 幂等性:所有写入操作都先查后建,避免重复创建资源 可追溯:所有测试上下文都持久化在Hive记忆中,支持增量更新
我们定义了一套完整的MCP工具接口,覆盖测试全生命周期的所有操作。Hive Agent通过调用这些工具与OInfer系统进行交互。
工具名 | 用途 |
|---|---|
oinfer_list_teams | 获取可用团队列表 |
oinfer_list_folders | 获取文件夹树,用于组织测试资源 |
oinfer_list_envs | 获取可用测试环境 |
oinfer_list_targets | 查询已有API定义,避免重复创建 |
oinfer_list_scenes | 查询已有测试场景 |
oinfer_list_auto_plans | 查询已有自动化计划 |
工具名 | 用途 |
|---|---|
oinfer_save_target | 创建或更新API定义 |
oinfer_save_scene | 创建测试场景 |
oinfer_save_flow | 配置场景的执行流程(节点和边) |
oinfer_save_auto_plan | 创建自动化测试计划 |
oinfer_attach_scene_to_plan | 将场景关联到计划(返回克隆后的场景ID) |
工具名 | 用途 |
|---|---|
oinfer_run_auto_plan | 触发自动化计划执行(支持注册回调地址) |
oinfer_stop_auto_plan | 停止正在执行的测试 |
工具名 | 用途 |
|---|---|
oinfer_get_report_list | 列出指定计划的所有报告 |
oinfer_get_report_detail | 获取报告的详细内容 |
V1最小可用工具集:我们优先实现以下10个工具,即可完成完整的自动化测试流程:
oinfer_list_teams → oinfer_list_folders → oinfer_list_envs → oinfer_list_targets
→ oinfer_save_target → oinfer_save_scene → oinfer_save_flow → oinfer_save_auto_plan
→ oinfer_attach_scene_to_plan → oinfer_run_auto_plan → [回调通知] → oinfer_get_report_detail命名规范:所有由Hive创建的资源都遵循统一的命名格式,避免与手动创建的资源冲突:
hive/{repo_name}/{branch}/{resource_type}/{name}例如:hive/api-service/main/scene/用户登录流程
Hive的记忆系统是实现增量测试和幂等操作的关键。每个被测服务对应一条记忆记录,以repo_url + branch作为唯一标识。
{
"operation": "save",
"type": "project",
"tags": ["oinfer-service", "api-service", "main", "test-context"],
"content": "{\"service_name\":\"api-service\",\"repo\":\"github.com/vast/api-service\",\"branch\":\"main\",\"commit_sha\":\"abc123\",\"spec_hash\":\"sha256:def456\",\"team_id\":\"xxx-team-id\",\"folder_id\":\"yyy-folder-id\",\"auto_plan_id\":\"yyy-plan-id\",\"scenes\":[{\"name\":\"用户登录流程\",\"source_scene_id\":\"aaa\",\"cloned_scene_id\":\"aaa-clone\"}],\"last_report_id\":\"zzz-report-id\",\"last_run_at\":\"2026-04-14T10:00:00Z\",\"known_issues\":[]}"
}关键字段说明:
commit_sha:检测代码变更,决定是否需要重新生成测试spec_hash:OpenAPI规范的内容哈希,比commit更精确memory_id:Hive记忆记录ID,用于后续更新操作folder_id:所有测试资源都放在同一个文件夹下,便于统一管理和清理cloned_scene_id:关联到计划后的克隆场景ID,不是原始场景ID查询方式:使用精确匹配查询,避免模糊搜索带来的误匹配:
{ "operation": "search", "query": "oinfer-service api-service main test-context" }oinfer-test是Hive Agent的核心技能,它负责协调所有工具调用,完成从代码到报告的整个流程。
参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
repo_url | string | 是 | - | GitHub仓库URL |
branch | string | 否 | main | 分支名 |
team_id | string | 否 | 第一个团队 | 指定OInfer团队 |
env_id | string | 否 | 第一个环境 | 指定测试环境 |
force_recreate | bool | 否 | false | 强制重新生成所有测试资源 |
记忆检索:查询是否已有该服务的测试上下文
代码解析:通过GitHub MCP读取仓库代码
openapi.yaml或swagger.json(最可靠)spec_hash和commit_sha用于变更检测资源创建:调用OInfer MCP创建测试资源(先查后建)
记忆保存:将测试上下文持久化到Hive记忆
测试执行:触发自动化计划执行,注册回调地址
oinfer_run_auto_plan时传入callback_url参数report_id并记录到记忆中回调处理:OInfer测试完成后主动通知Hive
report_idoinfer_get_report_detail获取完整报告智能分析:LLM解读测试报告,输出结构化结论
记忆更新:更新最后执行时间、报告ID和已知问题列表
模块 | 负责方 | 状态 |
|---|---|---|
OInfer MCP server 基础框架 | OInfer 终端 | 开发中 |
OInfer MCP 工具实现(含回调机制) | OInfer 终端 | 待开始 |
Hive skill: oinfer-test(含回调处理器) | Hive 终端 | 待开始 |
记忆结构设计 | 联合 | ✅ 已完成 |
MCP 工具列表定义 | 联合 | ✅ 已完成 |
为了保证项目顺利推进,我们已经就以下关键问题达成一致:
repo_url + branch作为唯一标识,精确匹配hive/{repo_name}/{branch}/{type}/{name}格式oinfer_get_report_detail返回的status枚举值oinfer_attach_scene_to_plan是否返回cloned_scene_idoinfer_save_target的同名幂等性行为(覆盖还是报错)oinfer_run_auto_plan的callback_url参数格式、回调签名验证方式传统的API测试是一个耗时费力的重复性工作,而AI的出现为我们提供了彻底改变这一现状的机会。Hive + OInfer的组合,不仅能将测试人员从繁琐的用例编写中解放出来,更能让测试左移成为现实——每次代码提交都能自动生成并执行测试,在开发早期就发现问题。
采用回调机制而非轮询,不仅让系统架构更加优雅高效,也为未来的流式输出和实时反馈打下了基础。这只是我们的第一步。未来,我们还将探索更智能的测试场景生成、异常路径自动覆盖、基于历史数据的风险预测等高级功能,让AI真正成为测试人员的得力助手。
你在API测试中遇到过哪些痛点?你觉得AI还能在哪些方面帮助提升测试效率?欢迎在评论区分享你的想法!
往期精选: