先来看一个典型场景:你要为一个新上线的用户注册接口生成测试用例,覆盖边界值、异常输入和业务逻辑。手动编写容易遗漏拼写错误、空字符串、超长邮箱等典型缺陷场景。那怎么高效完成呢?下面这套方法也许能帮上忙——它基于一个具体的接口背景:这是一个基于 Spring Boot 的 RESTful 接口,POST /api/v1/register,接收 JSON 格式的 {username, email, password, confirmPassword},要求 username 长度 2~16 位、email 需符合 RFC5322 规范、password 至少 8 位且包含大小写字母和数字、confirmPassword 必须与 password 完全一致。

明确需求并构造高质量提示词
打开 ChatGPT 对话界面,第一句就把被测对象的技术上下文写清楚——不是笼统地说“帮我写测试用例”,而是直接声明:“这是一个基于 Spring Boot 的 RESTful 接口,POST /api/v1/register,接收 JSON 格式的 {username, email, password, confirmPassword},要求 username 长度 2-16 位、email 需符合 RFC5322 规范、password 至少 8 位含大小写字母和数字、confirmPassword 必须与 password 完全一致。”
紧接着给出结构化指令:“请按以下字段生成 20 条测试用例:用例编号、测试标题、前置条件、输入数据(JSON 格式)、执行步骤、预期 HTTP 状态码、预期响应体关键词。所有用例必须覆盖:① username 为空/超长/含特殊字符;② email 为 null/格式非法/已存在;③ password 不符合复杂度/与 confirmPassword 不一致;④ 409 冲突、400 校验失败、201 成功三种状态。”
【关键前提】必须提供真实接口文档片段或 curl 示例,否则 ChatGPT 会虚构字段名或忽略约束条件,导致生成的用例无法执行。
筛选与修正生成结果
方法一:逐条验证 HTTP 状态码合理性
检查 ChatGPT 输出中所有标称“400 Bad Request”的用例,确认其输入是否真触发后端校验——比如它可能把“email 为空”列为 400,但实际接口设计是允许空邮箱的,这种就必须删除。
方法二:用正则批量过滤无效用例
复制全部用例到 VS Code,搜索 "email":".*?@.*?",删掉所有未匹配的行;再搜索 "password":".{0,7}",保留这些行并手动补全 confirmPassword 字段。
注意:ChatGPT 常把“密码少于 8 位”和“两次输入不一致”混在同一用例里,这违反单一故障原则,必须拆成两个独立用例。
注入真实业务规则补全逻辑分支
第一步:提取接口返回体中的业务错误码
用 Postman 调通注册接口,记录真实返回如 {"code":1002,"message":"用户名已被占用"},把 code=1002 加入提示词:“当 username 重复时,必须返回 code=1002 而非 HTTP 409”。
第二步:追加追问生成缺失分支
对 ChatGPT 发送:“刚才生成的用例中缺少‘用户名已存在’场景,请基于 code=1002 补充 5 条用例,输入数据中 username 必须使用已知存在的值如 ‘admin’ ‘testuser’,且 email/password 任意合法。”
第三步:交叉验证字段依赖关系
发现 ChatGPT 生成的“email 格式错误但 username 超长”用例,实际后端校验顺序是先验 username 再验 email,所以这类组合用例应删除——【不可跳过】必须对照接口源码或 Swagger 定义确认校验优先级。
导出为可执行格式
将最终确认的 20 条用例,在 ChatGPT 中输入指令:“把以上用例转成 Excel 兼容的 CSV 格式,用英文逗号分隔,字段顺序为:ID,Title,Precondition,InputData,Steps,StatusCode,ExpectedResponse。InputData 字段内容用单引号包裹,避免内部 JSON 逗号干扰。”
复制返回的纯文本,粘贴进记事本,另存为 UTF-8 编码的 register_testcases.csv,双击即可用 Excel 打开。
