小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 软件测试工具精华文章

    • 软件测试工具精华文章
    • 1. Postman 接口测试面试怎么讲
    • 2. Postman 环境变量和断言怎么用
    • 3. JMeter 不只是压测工具
    • 4. JMeter 参数化和关联怎么讲
    • 5. Charles 抓包在测试中怎么用
    • 6. Fiddler 抓包怎么辅助定位 Bug
    • 7. Jenkins 和自动化测试怎么结合
    • 8. Git 在测试团队中怎么用
    • 9. 常用测试工具怎么写进简历
    • 10. 测试工具面试常见追问怎么答
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

2. Postman 环境变量和断言怎么用?

Postman 环境变量和断言,是区分“会调接口”和“会做接口测试”的关键。很多同学用 Postman 时,每次都手动改 URL、手动复制 Token、手动把订单号粘到下一个接口、手动看响应结果。这种方式可以临时调试,但不适合项目测试,也很难在面试中体现能力。

真正项目里的接口测试,需要可维护、可复用、可批量执行。环境变量解决的是“动态数据和环境切换”问题,断言解决的是“接口结果是否符合预期”问题。掌握这两点,Postman 才从调试工具变成轻量接口测试工具。

一、环境变量解决什么问题

环境变量可以理解为 Postman 里的动态配置。它能让你把经常变化的值抽出来统一管理。

常见变量包括:

  • base_url:接口域名;
  • token:登录鉴权 Token;
  • user_id:当前登录用户 ID;
  • order_no:创建订单后返回的订单号;
  • product_id:商品 ID;
  • mobile:测试手机号;
  • timestamp:时间戳或随机数。

如果不用变量,你可能要在几十个接口里手动改地址或参数;用了变量后,只需要改一个地方。

二、base_url 环境变量怎么用

假设测试环境域名是:

http://test-api.example.com

预发环境域名是:

http://pre-api.example.com

可以在不同 Environment 中配置同名变量:

base_url = http://test-api.example.com

请求 URL 写成:

{{base_url}}/api/login

切换环境时,不需要改接口路径,只要切换 Postman 右上角环境即可。

面试中可以这样说:环境变量能避免硬编码地址,提升接口集合在不同环境之间的复用性。

三、Token 如何动态保存和使用

登录接口通常会返回 Token。你不应该手动复制,而应该在登录接口 Tests 中自动保存。

响应示例:

{
  "code": 0,
  "token": "practice-xxx",
  "user": {
    "id": 1,
    "username": "tester"
  }
}

Tests 脚本:

const jsonData = pm.response.json();
pm.environment.set("token", jsonData.token);
pm.environment.set("user_id", jsonData.user.id);

后续接口 Header:

Authorization: Bearer {{token}}

这样每次重新登录后,Token 会自动刷新。

四、接口关联怎么做

接口关联就是把前一个接口返回的数据传给后一个接口。

例如创建订单接口返回:

{
  "code": 0,
  "order": {
    "id": "NO10001",
    "statusText": "待支付"
  }
}

在 Tests 中保存订单号:

const jsonData = pm.response.json();
pm.environment.set("order_no", jsonData.order.id);

支付接口路径:

{{base_url}}/api/orders/{{order_no}}/pay

这就是业务流程串联。面试讲接口测试时,能讲出“登录提取 token、下单提取 order_no、支付引用 order_no”,就比单纯说会 Postman 强很多。

五、断言到底应该测什么

断言不是为了写脚本而写脚本,而是为了自动判断接口结果是否正确。

1. HTTP 状态码

pm.test("HTTP 状态码为 200", function () {
  pm.response.to.have.status(200);
});

注意:HTTP 200 不代表业务成功,只是第一层断言。

2. 业务 code

pm.test("业务 code 成功", function () {
  const jsonData = pm.response.json();
  pm.expect(jsonData.code).to.eql(0);
});

很多公司接口会用 code 表示业务结果,必须断言。

3. message 提示

异常场景尤其要断言错误提示。例如密码错误、库存不足、未登录。

pm.test("错误提示正确", function () {
  const jsonData = pm.response.json();
  pm.expect(jsonData.message).to.include("库存不足");
});

4. 字段存在和类型

pm.test("返回订单号", function () {
  const jsonData = pm.response.json();
  pm.expect(jsonData.order.id).to.exist;
});

5. 数组长度

列表接口可以断言返回数量。

pm.test("商品列表不为空", function () {
  const jsonData = pm.response.json();
  pm.expect(jsonData.products.length).to.be.above(0);
});

6. 响应时间

pm.test("响应时间小于 1 秒", function () {
  pm.expect(pm.response.responseTime).to.be.below(1000);
});

响应时间断言不等于性能测试,但能发现明显慢接口。

六、Pre-request Script 能做什么

Pre-request Script 是请求发送前执行的脚本。常用来生成随机数据、时间戳、签名参数。

例如生成随机手机号:

const mobile = "138" + Math.floor(Math.random() * 100000000).toString().padStart(8, "0");
pm.environment.set("mobile", mobile);

注册接口请求体就可以使用:

{
  "mobile": "{{mobile}}",
  "password": "123456"
}

这样可以避免重复手机号导致用例失败。

七、环境变量、全局变量、集合变量区别

简单理解:

  • 环境变量:和环境相关,最常用,比如测试环境、预发环境;
  • 全局变量:所有 Collection 都可用,但容易污染,不建议乱用;
  • 集合变量:当前 Collection 内使用,适合项目内固定配置。

面试中可以说:我一般优先用环境变量管理域名和动态参数,避免使用过多全局变量造成冲突。

八、常见项目场景:订单链路变量设计

在电商项目中,可以设计这些变量:

base_url
username
password
token
user_id
product_id
order_no

执行顺序:

  1. 登录接口保存 token;
  2. 商品列表接口保存 product_id;
  3. 加购物车接口引用 product_id;
  4. 创建订单接口保存 order_no;
  5. 支付接口引用 order_no;
  6. 查询订单接口断言订单状态。

这样一个 Collection 就能跑完整业务链路。

九、常见错误和避坑

1. 变量名不统一

比如前面保存 token,后面写 {{access_token}},就会导致鉴权失败。变量名要统一。

2. 没有选择环境

变量配置了,但右上角没有选择环境,请求中变量无法替换。

3. Token 过期没刷新

如果 Token 有有效期,回归前要先执行登录接口刷新 Token。

4. 断言太少

只断言状态码没有意义。关键接口至少要断言业务 code 和关键字段。

5. 断言太死

时间、随机 ID、动态金额等字段不要写死,应该使用变量或范围判断。

十、面试回答模板

如果面试官问“Postman 环境变量和断言怎么用”,可以这样回答:

我会用环境变量管理接口测试中的动态值和环境配置,比如 base_url、token、user_id、order_no。登录接口成功后,我会在 Tests 中解析响应,把 token 保存到环境变量,后续接口在 Header 里通过 Bearer {{token}} 自动鉴权。创建订单后,我会提取订单号保存为变量,再给支付和查询订单接口使用。断言方面,我不会只看状态码,还会校验业务 code、关键字段、错误提示、数组长度和响应时间。对于核心接口,比如支付和下单,还会结合数据库确认订单状态和流水一致。

十一、常见追问

追问:环境变量和全局变量区别?

环境变量适合不同环境隔离,比如测试和预发;全局变量所有集合都能用,容易污染,一般不建议滥用。

追问:接口之间怎么传值?

在前一个接口 Tests 中解析响应,用 pm.environment.set 保存变量,后一个接口用 {{变量名}} 引用。

追问:断言失败怎么定位?

先看是 HTTP 状态码失败、业务 code 失败、字段断言失败还是响应时间超时;再结合请求参数、响应体、日志和数据库定位。

十二、练习清单

  1. 配置测试环境和预发环境 base_url;
  2. 登录接口提取 token;
  3. 后续接口自动带 Token;
  4. 创建订单接口提取 order_no;
  5. 支付接口引用 order_no;
  6. 写状态码断言;
  7. 写业务 code 断言;
  8. 写字段存在断言;
  9. 写响应时间断言;
  10. 用 Runner 执行完整订单链路。

环境变量和断言是 Postman 的核心。你能把这两点讲清楚,就能证明你不是只会调接口,而是具备接口测试的基本工程化意识。

配套刷题:

  • 网络协议测试面试题
  • 电商测试实战接口文档
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
1. Postman 接口测试面试怎么讲
Next
3. JMeter 不只是压测工具