Postman 如何使用 Tests 脚本断言响应状态码和字段值

文章导读
Postman 使用 Tests 脚本断言需在请求面板点击"Tests"标签,编写 JavaScript 代码调用 pm.test() 定义用例,并通过 pm.response 对象获取状态码或 JSON 数据进行 pm.expect() 验证。适用于接口自动化测试场景,脚本在收到响应后自动执行。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

Postman 使用 Tests 脚本断言需在请求面板点击"Tests"标签,编写 JavaScript 代码调用 pm.test() 定义用例,并通过 pm.response 对象获取状态码或 JSON 数据进行 pm.expect() 验证。适用于接口自动化测试场景,脚本在收到响应后自动执行。

先说结论:Postman 断言依赖 Tests 标签页内的 JavaScript 脚本,核心是使用 pm.test 包裹验证逻辑。

  • 适合:接口回归测试与自动化校验场景
  • 先看:Tests 标签页脚本编辑区与 Test Results 面板
  • 建议:优先使用 pm.test 新语法而非旧版 tests[] 赋值写法

命令速用版

// 断言状态码为 200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// 断言 JSON 字段值
pm.test("Validate field value", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.field_name).to.equal("expected_value");
});

为什么会这样

Tests 脚本在收到 HTTP 响应后执行,基于 JavaScript 沙箱环境运行。Postman 内置 pm 对象提供响应数据访问能力,断言本质是将预期结果与实际响应数据进行比对,一致则 PASS,不一致则 FAIL。

Postman 如何使用 Tests 脚本断言响应状态码和字段值

分步处理

  1. 进入脚本编辑区:在 Postman 请求界面顶部导航栏点击"Tests"标签,右侧会显示代码编辑器。
  2. 编写断言逻辑:使用 pm.test("描述", function(){}) 定义测试用例,内部通过 pm.response 获取状态码、响应头或响应体。
  3. 发送请求:点击"Send"按钮提交请求,Postman 会在接收响应后自动运行 Tests 脚本。
  4. 查看执行结果:在响应区域下方的"Test Results"面板查看每条断言的 Pass 或 Fail 状态。

怎么验证是否生效

发送请求后,观察界面底部的"Test Results"面板。若断言通过,对应用例前显示绿色 PASS 标记;若断言失败,显示红色 FAIL 标记并可在控制台查看错误详情。也可在集合 runner 模式中查看整体通过率。

常见坑

  • 语法版本混淆:旧版语法 tests["name"] = logic 仍可用,但新版 pm.test() 提供更丰富的断言链式调用,建议统一使用新语法。
  • JSON 解析错误:若响应体不是合法 JSON,调用 pm.response.json() 会脚本报错,需先用 pm.response.text() 检查内容类型。
  • 异步执行误解:Tests 脚本是同步执行的,不能在脚本内使用 setTimeout 等异步逻辑等待响应,因为响应已接收完毕。

常见问题

如何获取响应头进行断言?

使用 pm.response.headers.get("Header_Name") 获取特定头信息,再配合 pm.expect 进行值比对。

Postman 如何使用 Tests 脚本断言响应状态码和字段值

怎么验证响应时间是否达标?

通过 pm.response.responseTime 获取毫秒数,使用 pm.expect(pm.response.responseTime).to.be.below(500) 验证是否小于 500ms。

旧版 tests[] 语法还能用吗?

公开资料中显示旧版语法仍被支持,但新版本的 pm.test 功能更完整,建议新脚本直接使用 pm.test 写法。

参考来源

  • Postman Tests 断言库使用案例
  • 在 Postman 中如何进行断言操作?_百度教育
  • 接口测试系列 (五)- Postman 断言
  • 『政善治』Postman 工具 — 9、在 Postman 中使用断言 - 博客园 (https://go.pstmn.io/docs-test-scripts)
  • 接口测试|Postman 设置断言