添加客服微信
400 035 7887
一、输入侧:给 Codex 足够精准、结构化上下文,减少 “理解偏差”
Codex 生成质量高度依赖输入信息,信息缺失是脚本出错最主要原因。
1. 提供结构化规范文档,而不是纯文字描述
优先传入 OpenAPI/Swagger、接口 schema、页面元素清单、函数源码、数据模型,而不是模糊的自然语言需求。
例如给 OpenAPI,Codex 可以直接读取参数类型、必填项、枚举、返回结构,生成的请求和断言不会出现参数类型错误;
如果只给一句话 “测试下单接口”,很容易漏掉必填字段、状态码、返回字段断言。
2. 增加约束指令(Prompt 约束)
在提示词中强制编码规范、断言规则、异常场景要求:
要求显式断言(不只判断接口 200,还要校验返回体字段值、数据类型、业务状态);
指定框架版本、编码规范、PO/PageObject 模式、异常捕获;
明确禁止硬编码账号密码,要求读取环境变量。
3. 限定上下文范围
只传入当前被测模块代码,减少无关代码干扰,防止 Codex 混淆相似函数 / 接口。
二、生成侧:通过生成策略,提升代码语法、逻辑正确性
1. Few-shot 示例引导
在 Prompt 里带上本项目已有的高质量自动化脚本样例,让 Codex 学习项目的编码风格、断言写法、封装方式,生成的脚本和现有工程保持一致,减少风格与用法错误。
原理:Codex 会模仿样例的结构,避免自创不符合项目规范的写法。
2. 多场景分支强制覆盖
明确指令要求:正向、反向、边界、异常场景分开生成,不要只写成功用例。
例如单元测试强制要求:正常入参、空值、非法类型、超出范围、异常抛出场景。
3. 代码自校验生成
让 Codex 在生成脚本的同时,增加前置检查逻辑:参数合法性校验、等待机制(UI 自动化增加 waitFor,减少元素未加载导致的不稳定 flaky 用例),减少脚本本身的时序 bug。
注意:Codex 只能保证代码语法大概率可运行,无法自动识别业务逻辑错误(比如业务规则:下单库存不足返回 code=1002,如果文档写错,AI 也会跟着错)。
三、闭环反馈:执行日志回灌,迭代修复脚本(最关键的可靠性手段)
这是 Codex 区别于一次性代码生成的核心质控手段,形成「生成→运行→报错→修复」闭环:
1. 执行脚本,捕获完整日志:报错堆栈、接口返回、页面 DOM 信息、请求 / 响应报文;
2. 将报错信息 + 原始脚本 + 被测代码一起喂回 Codex;
3. Codex 分析区分两类问题:
脚本问题:定位器失效、超时、参数写错、断言写反;
被测业务代码问题:真实 Bug;
4. 自动修改测试脚本,输出修复版本,再次执行验证。
这个机制专门解决 Flaky(不稳定)自动化脚本,比如 UI 元素动态 ID、异步加载问题。
四、工程化自动校验:在 CI 流水线增加自动化检查,拦截坏脚本
Codex 输出代码后,不直接合并入库,先由工程工具做一层自动化校验:
1. 语法校验 & 静态代码扫描:Lint、类型检查、编译检查,直接过滤语法错误代码;
2. 测试脚本预跑:隔离测试环境预执行,验证脚本能否正常运行;
3. 断言有效性校验:检查脚本是否包含业务断言,过滤只有调用没有校验的 “空用例”;
4. 重复 / 冗余用例检测,避免生成大量重复用例。
作用:拦截 AI 生成的语法错误、缺少断言、硬编码敏感信息等低级问题。
五、人工评审机制:守住业务正确性底线(不可省略)
AI 无法理解隐性业务规则、业务边界、风险场景,必须人工评审:
1. 用例评审:人工检查测试场景是否覆盖、是否遗漏业务规则;
2. 断言评审:校验断言是否符合业务预期,防止 AI 写出反向断言;
3. 风险点复核:核心流程、资金、权限类用例重点人工确认;
4. 把人工评审发现的错误案例沉淀为样例,持续喂给 Codex,形成持续优化。
六、局限性:哪些可靠性问题 Codex无法自行解决
1. 依赖输入文档的准确性:文档错,生成脚本跟着错;
2. 隐性业务规则盲区:文档没写的业务逻辑,AI 不知道;
3. 无法区分 “脚本缺陷” 和 “被测系统真实 Bug”,需要人工判断;
4. 动态页面、异步竞争场景,依然可能生成不稳定脚本,需要反复调优。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。