团队想搭 AI 自动化测试平台,最难的不是写个脚本调模型,而是选型怎么定、用例生成怎么控、跑起来以后超时和限流怎么兜、结果不可信怎么办。这篇按工程落地顺序给一份速查大纲:先定分层和模型档位,再定用例生成与执行链路,最后补上评测、日志和降级,每一步都给出可勾选的清单。
团队想搭 AI 自动化测试平台,最难的不是写个脚本调模型接口。真正卡人的是三件事:模型选型到底怎么定档、用例生成怎么控住质量、跑起来以后超时限流怎么兜住。这篇按工程落地顺序拆一遍,从分层和边界开始,一步步走到评测和日志。
先说结论方向:模型只在生成层和判定建议层出现,执行和断言必须靠确定性代码。别指望让模型既写用例又跑用例还判断结果,那样出了问题你根本不知道该修哪一环。先圈一个两到四周能跑通的最小范围,再往外扩。
先定分层与边界:哪些活交给模型,哪些留在确定性代码里
把平台拆成四层来看:输入层收需求和接口文档、生成层让模型产出用例草稿、执行层跑确定性执行器、判定层做断言和结果归档。模型的角色只在前两层和判定建议层,执行与断言不能交给它。这条边界定死了,后面所有超时和降级设计才有地方挂。
| 层 | 谁负责 | 交给模型的边界 |
|---|---|---|
| 输入层 | 需求、接口文档、历史用例的结构化 | 可以辅助抽取字段,但结构要固定 |
| 生成层 | 模型产出用例草稿骨架 | 主要战场,但输出必须结构化 |
| 执行层 | Playwright、pytest 等确定性执行器 | 不交给模型,纯代码 |
| 判定层 | 断言与结果归档 | 可以让模型给失败归类建议,最终断言仍靠代码 |
- 强依赖精确数值、强时序、强状态的用例别全交给模型,它生成的只能当草稿,断言要人工补齐后再入库
- 先圈两到四周能跑通的最小范围,比如只做「接口用例生成 + 回归执行」,别一上来就做全栈 UI
- 模型档位按任务分:生成用例草稿用能力强的一档,失败归类和报告摘要用更便宜的一档,别一刀切
- 每层之间的接口先定死字段格式,后面换模型或换执行器时才不用大改
用例生成链路:从需求到可执行用例的固定流水线
把生成拆成三步,每一步都能单独回退:先做需求与接口文档的结构化,再生成用例骨架,最后补齐断言和测试数据。每一步都要求结构化输出,比如 JSON,不要让它直接吐一大段自然语言。自然语言没法做字段校验,也没法拆分重试。
- 结构化输入把需求文档和接口定义整理成固定字段,缺失字段先报错,别让模型猜;验证方式是拿几条已知用例跑一遍,看抽取字段是否对得上
- 生成骨架只生成标题、前置条件、步骤,不带断言;验证方式是检查步骤里引用的接口是否都真实存在
- 补齐断言与数据单独一轮补断言和测试数据,输出同样结构化;验证方式是断言字段非空且类型正确,空断言直接打回
再准备一份项目规则文件,把命名规范、断言风格、禁用的等待方式写进去,每次生成都带上。同时生成结果必须过一道确定性校验:字段齐不齐、步骤有没有引用不存在的接口、断言是不是空的。不合格的直接打回重生成,别让它流进执行队列。
- 每条用例带来源标记:哪份文档、哪次生成、哪个模型档位,否则回归失败时追不到源头
- 规则文件当成生成的输入,而不是事后检查清单,能少一半返工
- 批量生成时先小样本试跑,确认字段校验通过率再放大
- 断言为空的用例一律不进执行队列,宁可少跑也别跑出假结果
跑起来才见真章:超时、并发、限流与降级
这节是多数团队最容易翻车的地方。超时要按段设:连接超时、单次模型调用超时、整条生成任务的整体超时分开配。整体超时到了必须能截断并落盘半成品,否则任务挂死会占住整个队列,后面排队的一起卡住。
并发要分两处看:模型接口自己有并发上限,执行器本身也有并发上限,两处取小值再留余量。批量生成时分批投递,失败的单独重投,不要一次全推上去。降级顺序提前写死,主模型失败就换备用档位,还失败就退回只生成骨架、断言留空的兜底模式,保证链路不空转。
| 故障类型 | 处理动作 | 要记的日志 |
|---|---|---|
| 模型调用超时 | 截断任务,落盘半成品,标记待续 | 任务 ID、耗时、截断位置 |
| 并发或限流命中 | 排队加退避重试,别立刻重投 | 命中次数、退避时长 |
| 主模型连续失败 | 切备用档位,再失败走兜底模式 | 切换时间、切换原因 |
| 执行器报错 | 隔离该用例,不阻塞整批 | 用例来源标记、错误类型 |
超时、并发、降级这三件事不提前写死,平台上线那天就是救火那天。
评测与日志:怎么知道生成的用例到底有没有用
别拿生成成功率当唯一指标,那个数字好看但没意义。更有用的口径有三个:生成用例被采纳的比例、跑失败里属于用例本身写错的比例、以及回归真正发现的缺陷数。这三个才反映平台到底帮没帮上忙。
- 固定一组人工标注过的样本当回归集,每次改提示词或换模型档位都跑一遍,比对上面三个口径的变化
- 日志至少记任务 ID、模型与档位、提示词版本、耗时、token 用量、失败原因分类这六项,缺一项都复盘不了
- 调整前后要能对照,别凭感觉觉得变好了;具体指标和当时的数据到站内评测或价格页面核对
- 接入前先把连通性和延迟基线量一遍,再谈优化,否则你连变慢是因为模型还是网络都分不清
如果团队还涉及自建客户端或对接中转服务,接入步骤和连通性基线可以参考站内已有内容,但评测口径要以你们自己的回归集为准。平台搭完不是终点,提示词版本和模型档位每次变动都要重新跑回归集,把变化记录下来。
下一步先按上述清单圈出你们的最小范围,再去站内核对当前各家接口的实际延迟与价格数据,把选型建立在当时的数字上而不是印象里。→常见问题
小团队没有专职测试,这套平台值得搭吗?
如果回归靠人工点、且接口变动频繁,值得先从「接口用例生成 + 定时回归」这一小块做起,一两周能见效。如果需求变化极慢、用例总量很小,人工维护反而更省,先别上平台,用现成工具加人工就够了。
模型生成的用例能不能直接进 CI?
不建议直接进。生成结果要先过结构化校验和人工抽查,稳定一段时间后再把其中被采纳的部分固化进回归集。CI 里跑的应该是人工确认过的用例,模型继续在后台生成新草稿,两条线分开。
跑起来老是被限流,是模型接口的问题吗?
先分清是模型接口的并发/QPS 限制,还是你们自己的执行器或中间层排队出了问题。看日志里的失败分类和重试记录,再对照站内的限流与退避排查思路;多数情况是批量任务一次性推太多,分批加上退避就能缓解。