You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman接口自动化测试:响应体存储与比对问题求助

解决Postman中响应体存储与比对的问题

问题根源

你当前的代码存在两个核心问题:

  1. JSONtoCompare是一个空对象,和接口返回的serverData结构、内容完全不符,直接用===比较必然返回false。
  2. JavaScript中对象用===比较的是内存引用而非内容——即使两个对象内容完全一致,只要是不同的引用,结果也是false,必须用深度比对逻辑。

实现方案(Postman内完成)

Postman沙箱无法直接读写本地文件,推荐用全局/环境变量存储第一次的响应,后续请求直接从变量中读取比对。

步骤1:存储第一次请求的响应

在第一次请求的Tests标签中添加以下代码:

// 解析响应体为JSON对象
var firstResponse = JSON.parse(responseBody);
// 将JSON转为字符串存入全局变量(Postman变量仅支持字符串类型)
pm.globals.set("stored_response", JSON.stringify(firstResponse));

步骤2:第二次请求时比对响应

在第二次请求的Tests标签中添加以下代码:

// 解析当前请求的响应体
var currentResponse = JSON.parse(responseBody);
// 取出存储的响应并转回JSON对象
var storedResponse = JSON.parse(pm.globals.get("stored_response"));

// 使用Postman内置断言进行深度比对
pm.test("响应体与存储内容完全一致", function () {
    pm.expect(currentResponse).to.deep.equal(storedResponse);
});

可选:将响应存储到本地文件(结合Newman)

如果必须将响应写入本地文件,需要用Newman(Postman的命令行运行工具)执行集合:

  1. 第一次运行时导出响应到文件:
newman run your-collection.json --export-response stored_response.json
  1. 后续运行时,可结合Newman自定义脚本或外部工具读取文件内容完成比对(Postman沙箱不支持直接读取本地文件)。

内容的提问来源于stack exchange,提问作者Sunanda Menashinkai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:35:27