使用DeepSeek生成接口测试问题清单时,最忌讳的就是空泛笼统。必须确保每条问题都指向具体的请求路径、可复现的参数组合以及明确的断言依据——这才是关键所在。像“检查响应是否正确”“验证逻辑是否合理”这类描述,根本无法执行,直接作废即可。
把漏测缺陷直接转化为可执行的测试问题
具体做法是什么?首先,将最近一次线上暴露的真实缺陷完整搬出,附带全部上下文:环境、请求路径、参数细节、异常现象。例如“2026-07-12 prod 环境,POST /api/v3/user/profile → body 中 avatar 字段传超长 base64(≥2MB)→ 服务返回 500 而非 413 → 导致头像上传失败无提示”。
然后,在提示词中明确要求:只基于这个缺陷生成问题,格式必须严格绑定——【问题】+【路径】+【参数组合】+【预期状态码/响应体字段】。注意,如果生成的回答里没有出现“/api/v3/user/profile”或“avatar 字段≥2MB”这类关键信息,那么整条问题直接判定无效,无需犹豫。
每条问题后面还需附上一个可截图验证的要点。例如“Chrome Network Tab 查看 response headers 中 content-length 是否为 0”,或者“Postman 中 body 面板显示 avatar 字段长度为 2097152 字节”。这样,验证过程有据可查,而非空口白话。
从代码变更反向推导测试问题
另一种思路,是从代码变更本身切入。你的PR修改了哪一行,逻辑发生了怎样的转折,这些都可以作为测试问题的锚点。
举个例子,提示词可以这样写:“本次 PR 修改了 UserService.updateProfile() 第 142 行,将 avatar 校验逻辑从前端拦截改为后端校验,且新增了 maxAvatarSize=2097152 字节限制。请列出所有必须覆盖的测试问题,每个问题需包含:① 请求路径;② 触发该行代码执行的最小参数集;③ 对应的断言动作。”这样生成的问题,直接指向代码实际执行路径,覆盖度更精准。
或者,从日志异常反向锁定。如果生产环境某一时段反复出现特定错误,比如“java.lang.OutOfMemoryError: Direct buffer memory”,堆栈又明确指向某个接口,那就直接拿这个作为输入。提示词可以写:“prod 环境 2026-07-12 10:18–10:23 出现 9 次 ‘java.lang.OutOfMemoryError: Direct buffer memory’,堆栈含 com.xxx.service.UserService.updateProfile,错误前请求均为 POST /api/v3/user/profile 且 avatar 字段 base64 长度 >1.8MB。请据此生成 3 条必须执行的接口测试问题,每条必须含可复现的 base64 截断长度。”这样生成的问题,直接复现了线上故障场景,价值很高。
注入不可绕过的执行约束
最后,别忘了在提示词末尾加上团队硬性规则,单独一行写清楚:所有问题必须标注执行角色(FE/BE/QA);每条问题的参数值必须满足正则 ^data:image/[a-z]+;base64,[A-Za-z0-9+/]{2097152,}$;如果参数字符串长度不足 2097152 字节,该问题自动作废。这些约束就像锁扣,确保生成的每条问题都经得起推敲和执行。
