你有没有遇到过这种场景:接口文档给你了,Postman 里也把请求一个个建好了,但真正跑测试时,你发现大部分时间不是在调接口,而是在写断言、调参数、造数据、排查脚本报错。一次接口回归,光用例维护就能耗掉半天。所以我看到“90分钟搞定AI接口测试”这个标题时,第一反应不是“工具又升级了”,而是“终于有人把AI用到了接口测试最枯燥的那一段”。这篇文章不是介绍某个黑科技,而是想回答一个问题:AI+Postman 到底能不能把接口测试里最耗时间的部分压缩掉?我的判断是:能,但前提是你知道 AI 该在哪个环节介入,以及怎么验证 AI 生成的东西。
1. 先想清楚:AI+Postman 到底解决接口测试的哪个痛点
1.1 传统接口测试里最耗时间的不是调通,而是用例设计和断言编写
我们先把接口测试的日常拆开。拿到接口文档后,通常会经历几个步骤:根据文档创建请求,设置 Header、Query、Body,发送请求,查看响应,然后写断言,再考虑异常场景、边界值、鉴权、超时、失败重试,最后批量执行,看结果,修问题。
在过去,手动执行一次简单接口测试并不慢,真正慢的是怎么让这个测试可重复、可回归、可维护。举个例子:你新加了一个“用户信息更新”的接口,文档里有正常返回、字段缺失、Token 过期、手机号格式错误等几种场景。传统做法是复制几次请求,分别修改参数,再写几段断言脚本。一个接口这样搞就要十几分钟。如果项目里有几十个接口,这套流程会迅速变成一个体力活。
AI+Postman 组合的核心价值,不是帮你发一次请求,而是把“从接口描述到可执行测试脚本”这层翻译工作自动化。包括生成请求参数、生成断言、生成测试数据、甚至生成 Collection 结构。换句话说,AI 更像一个熟悉 Postman 脚本语法的测试助理,而不是一个替你拍板的人。
1.2 AI 真正介入的是“从接口文档到可执行用例”这一段
很多人对 AI 辅助测试的理解是“AI 把整个测试全干了”。真不是。AI 最擅长的,是从一段结构化文本(接口文档、OpenAPI/Swagger JSON、需求描述)中提取出测试必要的信息,然后转换成 Postman 的请求设置和断言脚本。
比如我们可以让 AI 阅读一份 Swagger 导出的 JSON,然后给出建议:每个接口的 Method、URL、Headers、Body 结构,以及最少需要覆盖的断言点。有了这些,再结合 Postman 的导入能力,就能很快生成一个基础 Collection。这里要注意,AI 生成的结果是基于模式匹配和常见实践的,不是基于你公司的业务规则。所以它不能直接替代测试设计,只能替代一部分重复劳动。
在这 90 分钟里,我们应该把 AI 当成一个“快速起草器”,而不是“最终拍板者”。这样目标就具体了:先用 AI 生成 80% 的请求和断言,再花 20% 的时间修正业务相关部分。
1.3 90 分钟的目标应该是“跑通一条最小可用链路”
什么叫最小可用链路?就是从一份接口文档开始,到 Postman 里能批量执行一组接口测试,并且能区分“通过”和“失败”,最后能导出一份结果报告。不追求每个接口都覆盖所有异常分支,也不追求把断言写到极致,重点是先解决有没有、能不能重复跑的问题。
这样 90 分钟才够用。时间分配大概是:前 15 分钟准备材料,中间 50 分钟用 AI 辅助生成请求、断言和测试数据,再用 20 分钟批量执行和修复典型问题。如果上来就想把所有细节都完善,90 分钟大概率不够。
所以,先把“搞定”定义清楚。我理解的搞定,是让你从一个空白的 Postman 工作区,变成一个可以重复执行的接口测试集合,而不是把整个项目的所有边界情况全部测完。这个认知很重要,它决定了你会怎么分配这 90 分钟。
2. 用 90 分钟搭出一条 AI 辅助接口测试闭环
2.1 第 0 到 15 分钟:准备接口信息与 Postman 环境
先做三件事:
- 把接口文档整理成 AI 能够理解的格式。可以是 Swagger/OpenAPI 导出的 JSON,也可以是 Markdown 或表格,字段至少包含接口名、Method、URL、Header、Query、Path 参数、Body 结构。
- 如果文档不完整,先找几个真实请求样例。AI 非常依赖输入的质量,给它一个模糊的接口描述,它只能给你一个模糊的脚本。
- 确认 Postman 能正常访问目标环境。包括代理、SSL、Token、环境变量。
在 Postman 里建议先建两个环境:dev和test。环境里放base_url、token等变量。这一步看起来基础,但直接影响后续 AI 生成的脚本能不能复用。如果环境变量没建好,AI 生成的请求地址可能是硬编码的,后面切换环境就麻烦了。
如果你手里已经有一套 Swagger JSON,也可以先导入到 Postman,再用 AI 去分析已有的 Collection。这样做的好处是请求结构已经存在,AI 的重点可以放在补全断言和测试数据上,效率会更高。
2.2 第 15 到 50 分钟:用 AI 生成请求、断言和测试数据
拿到接口文档后,可以先让 AI 帮你做“翻译”,而不是直接生成整个 Collection。给 AI 的提示词可以这样写(示例):
请根据以下接口信息,生成 Postman 的请求配置和 Pre-request Script、Tests 脚本: - 接口名:用户信息更新 - Method:PUT - URL:https://{base_url}/api/v1/users/{userId} - Headers:Authorization: Bearer {{token}}, Content-Type: application/json - Body:{"nickname":"test","avatar":"https://..."} - 需要覆盖的正常返回:200,返回业务码 0 - 需要覆盖的异常场景:Token 无效返回 401;nickname 为空返回 400AI 通常会输出一套请求配置和脚本。这里比较容易被忽略的是:AI 可能不会主动把 URL 中的{userId}处理成 Postman 变量。所以拿到 AI 输出后,第一件事是检查路径参数是否用了{{userId}}或集合变量,而不是写死一个真实 ID。
建议流程是这样的:
- 先让 AI 生成单接口请求配置,导入 Postman 验证请求能通。
- 请求通了之后,再让 AI 生成断言脚本。
- 断言可以分几类:HTTP 状态码、业务响应码是否存在、关键字段值是否匹配、响应时间是否超时。
- 然后再让 AI 生成测试数据,比如用户 ID 列表、昵称随机值、Token 过期值,并建议放入环境变量或 CSV 数据文件。
注意,AI 生成的脚本在 Postman 里运行后可能报错。常见原因有两个:一是变量名和实际环境变量不一致,二是pm.response.json()里取值路径和真实响应不一致。所以每段脚本都要用 Postman 的 Console 和响应体验证一遍。
2.3 第 50 到 70 分钟:结合 Collection Runner 跑回归
到这一步,基础 Collection 已经建好。接下来用 Collection Runner 批量执行。在 Runner 里选择对应环境,设置迭代次数,勾选“Save responses”方便看结果。如果不涉及依赖关系,还可以打开“Run collection without using stored cookies”等选项,减少状态干扰。
跑完以后,重点关注三类结果:
- 所有请求都通过:说明当前用例集合在目标环境上是正常的。
- 部分请求失败:要区分是断言失败、请求失败还是脚本错误。
- 脚本执行报错:通常不是接口问题,而是 Postman 脚本语法、变量作用域或数据格式问题。
建议把 Runner 的执行日志导出,作为后续追踪基线。如果你后续想接入 CI,还可以在命令行用 Newman 执行同一个 Collection,这样就能把测试沉淀成流水线的一部分。
2.4 第 70 到 90 分钟:处理失败用例并沉淀模板
批量执行后,大概率会有几个失败项。快速处理顺序是:先打开 Console,看失败请求的完整响应;如果响应正常,再检查断言里取值的字段路径是否正确;如果响应也异常,再对比环境、Token、参数是否过期。
把所有失败项处理完之后,最后一步是沉淀模板。所谓模板,不是指写一份文档,而是指让 AI 生成一套“可以被复用的模式”,比如:
- 统一登录流程脚本,放到 Pre-request Script 里自动获取 Token。
- 统一响应结构断言片段,用
pm.response.to和pm.expect写几个常用检查。 - CSV 数据驱动模板,用于跑同一接口的多组参数。
有了这些模板,下次新接口进来,你只需要让 AI 按模板生成对应的请求和断言,省去重复造轮子的时间。
3. 几个必须理解的关键机制,不然后面会卡住
3.1 为什么不建议一上来就让 AI 直接生成完整 Collection
我见过不少同学拿到 AI 辅助测试的推荐后,第一件事是把 Swagger JSON 丢给 AI,让“直接生成一个完整 Collection”。结果往往是 Collection 很完整,但跑起来全是红色。原因在于:AI 不理解你业务里登录态的获取方式、不理解字段之间的依赖、不理解某些参数是动态生成的。
所以更稳的做法是拆开处理:先让 AI 生成单个接口的请求,再生成断言,再生成数据脚本。每次只增加一个环节,有问题能快速定位。这样做虽然看起来慢,但实际上能避免最后面对一大片错误时无从下手。
3.2 断言脚本的变量作用域和 PM 对象
Postman 脚本里有几个不同作用域:global、collection、environment、data、local。AI 生成脚本时经常会用pm.globals.set或pm.environment.set。如果不注意作用域,很容易出现“环境变量设置了,但请求里取不到”的情况。
比如 Pre-request Script 里动态生成一个签名字段,如果写入pm.environment.set("sign", signValue),那么请求体里要用{{sign}}来引用。如果 AI 生成时直接把变量放在了 Global 里,而且你在环境变量里也有一个同名变量,Postman 取变量时有优先级,实际生效的可能是你没想到的那个值。
建议一开始就明确:和具体环境相关的放 environment 变量;和整个集合相关的放 collection 变量;跨环境且不敏感的公共配置可以放 global。AI 生成的脚本可能在任意位置 set 变量,所以每次运行前先看变量作用域面板,确认当前生效值。
3.3 环境变量与数据驱动的关系
接口测试最大的复用价值之一是数据驱动。Postman 可以通过 CSV 或 JSON 数据文件,批量跑同一请求的不同参数。AI 可以帮助生成这些数据文件,但需要你提供字段规则。
比如一个“批量查询订单状态”的接口,你可以让 AI 生成一批合法订单号、一批非法订单号和一批过期 Token。CSV 里每一行就是一次迭代。注意数据文件里的字段名,要和脚本中引用的变量名对应。如果 AI 生成的 CSV 列名是orderId,而断言脚本里用的是order_id,Runner 里就会得到一堆未定义变量。
这块是新手最常踩的坑,也是最容易造成“AI 生成的东西不能用”印象的地方。解决方式很简单:生成后先看表头,再对照脚本中的变量引用,统一命名。
3.4 AI 生成代码的验证方式
AI 生成的任何脚本,都要在 Postman 里做最小验证。不要因为 AI 写的代码看起来专业就直接信任。Postman 提供了 Console,能看到每次请求的日志、脚本输出和变量变化。
建议把 AI 生成的脚本拆成小段运行。比如先手动跑一次请求,确认响应结构;再把断言脚本粘贴进 Tests,查看断言结果。如果出现以下现象,基本可以判断是脚本问题而不是接口问题:
- Console 里没有请求日志,说明脚本在请求前就报错了。
- 请求日志正常,但测试结果为红色,且错误信息指向某个变量为 undefined。
- 脚本里使用了
pm.response.json().data.list,但真实响应里没有 list 字段。
验证完每一段脚本后,再把整个 Collection 串起来跑。这样才能把错误范围缩小。
4. 排查与避坑:从报错到稳定运行的检查清单
4.1 第一步:判断失败是在请求层、脚本层还是环境层
当 Runner 跑出一片红的时候,先不要急着改脚本。先分类:
| 失败层 | 典型现象 | 优先检查 |
|---|---|---|
| 请求层 | 状态码 4xx/5xx,或响应体报错 | URL、Header、Body、请求参数 |
| 脚本层 | 测试结果为红色,且 Console 里有脚本报错 | Tests 脚本、Pre-request Script、变量取值 |
| 环境层 | 请求没发出,或提示变量不存在 | base_url、token、当前环境是否正确 |
我在实际处理时通常会按这个顺序:先看请求的状态码,如果响应正常但有测试失败,那就 90% 是断言脚本的问题。如果请求都没发出去,那问题在 pre-request 脚本或变量作用域。这个顺序能避免在错误方向上浪费大量时间。
4.2 第二步:检查变量是否在正确作用域内
很多 AI 生成的脚本会假设某些变量已经存在,比如{{token}}、{{userId}}。你需要确认这些变量在运行时确实有值。常见坑:
- Pre-request Script 里先发登录请求拿 token,但请求还没跑到登录接口时,别的请求就已经在用了。
- 集合变量被脚本覆盖了,导致后续请求用的是错误值。
- 环境变量和全局变量同名,实际生效的是全局变量。
一个比较有效的做法是,在 Tests 脚本里加一行console.log(pm.environment.get("token")),跑一次看变量到底有没有被正确设置。如果为空,先解决取值问题,再往下排查。
4.3 第三步:检查动态数据是否需要预处理
接口测试里经常遇到时间戳、验证码、短信验证码、随机数、图片验证码等动态数据。AI 能生成静态测试数据,但对于动态数据,它只能生成处理逻辑,不能替代真实环境。
比如某个接口要求签名参数是“当前时间戳+固定密钥的 MD5”,AI 可能在 Pre-request Script 里生成一个基于Date.now()的签名。但如果时间戳在请求体和签名里不一致,后端就会拒绝。此时要确保timestamp变量和签名计算使用同一个值。
这类问题在单次执行时可能偶发,在批量执行时更容易暴露。所以批量跑之前,先看脚本里有没有随机数或时间戳变量,确认取值是否一致。
4.4 第四步:确认批量运行时的顺序与依赖
Postman 默认是按 Collection 里的顺序执行请求的。如果你的接口之间有依赖,比如先创建订单再查询订单,那创建订单接口返回的订单号需要传到查询接口。AI 生成的 Collection 不一定考虑了这种依赖,它会假设你已经有了一个订单号。
解决依赖关系有几个常见方案:
- 在创建订单的 Tests 脚本里,把返回的订单号写入环境变量,后续请求用
{{orderId}}引用。 - 如果多个请求之间需要串行执行,用 Collection Runner 的顺序即可。
- 如果接口本身不要求顺序,尽量降低耦合,避免一个接口失败导致后续全部失败。
这种依赖设计是测试脚本中比较难自动化的部分,AI 可以帮助生成赋值代码,但依赖顺序还是需要人来判断。
5. 别忘了:AI+Postman 的适用边界和长期价值
5.1 适合什么场景,不适合什么场景
先说不适合的场景,避免大家对 AI+Postman 产生不切实际的期待。
| 适合场景 | 不适合场景 |
|---|---|
| 接口文档相对完整,需要快速生成基础请求和断言 | 接口文档极度缺失,且没有可参考的真实请求 |
| 回归测试对象是大量简单接口,比如 CRUD 类 | 接口返回结构动态变化,不同分支字段类型不同 |
| 需要把 Swagger/OpenAPI 文档快速转成可执行 Collection | 涉及大量文件上传、回调、异步任务、WebSocket |
| 团队想建立接口自动化测试基线,但人手和精力有限 | 需要严格测试设计、缺陷定位和复杂业务规则 |
适合的场景非常明确:AI+Postman 适合“从0到1”的提升,不适合“从1到10”的精细化打磨。后者的价值更多依赖测试人员对业务的理解,而不是生成脚本的能力。
5.2 从“能跑”到“能维护”还需要补哪些工程能力
90 分钟能跑通,不代表这个测试集合可以长期使用。接下去要补的东西包括:
- 统一变量命名规范和脚本规范。否则下一个人接手时,会看不懂为什么一些变量在环境变量里,另一些在集合变量里。
- 定期刷新接口文档和 Collection 同步机制。接口一变,Collection 里的旧用例会逐渐失效。
- 用 Newman 把 Runner 集成到 CI 流水线里,让测试可以自动触发。这样 90 分钟跑通的一次性脚本,才能变成持续回归的资产。
- 把测试结果接入消息通知,失败时能及时定位。否则自动化测试会变成“跑了但没人看”的摆设。
这些工作不是 AI 能替代的,但 AI 可以帮你快速生成初始版本,让你有更多精力去补齐这些工程化能力。
5.3 用 AI 辅助测试的长期收益
长期看,AI+Postman 最大的收益不是“快”,而是降低了接口测试的一个隐性门槛:脚本编写和调试。很多测试同学不是不懂业务,而是被 Postman 的 JavaScript 语法、变量作用域、响应解析卡住了。AI 可以把这些技术细节包装成自然语言对话,让业务人员也能快速生成基础脚本。
但这里有一个反直觉的点:AI 辅助测试越成熟,需要人来判断的业务问题就越突出。因为 AI 能帮你自动生成请求、断言、数据,但它不能告诉你某个字段在业务上到底允不允许为空,某个状态下接口是否应该返回特定错误码。
所以,真正的高手用 AI+Postman,不是把测试完全交给 AI,而是把节省下来的时间用于更重要的测试设计、结果分析和质量沟通。这可能是“90分钟搞定AI接口测试”这个词背后值得长期关注的原因:你搞定的是重复劳动,而真正的思考才刚刚开始。