Linux环境下Postman处理响应的完整流程
在Postman中创建或选择请求(GET/POST等),配置URL、Headers(如Content-Type: application/json)、Body(如JSON参数)后,点击Send按钮。响应结果会在下方Response面板显示,包含三部分核心内容:
Content-Type: application/json、Authorization: Bearer xxx);{"id":1,"name":"John"})。使用pm.response.json()方法将响应体解析为JavaScript对象,通过**点(.)或下标([])**获取嵌套字段:
// 示例响应:{"data":{"user_id":101,"roles":{"points":["admin","editor"]}}}
var jsonData = pm.response.json();
var userId = jsonData.data.user_id; // 获取嵌套字段(点表示法)
var rolePoints = jsonData.data.roles.points[0]; // 获取数组第一个元素(下标表示法)
var lastRoleId = jsonData.data.roles.points.slice(-1)[0]; // 获取数组最后一个元素
pm.response.text()获取纯文本内容(如API返回的token字符串);csrf-token):// 示例HTML响应:<meta name="csrf-token" content="abc123">
var htmlText = pm.response.text();
var csrfToken = htmlText.match(/name="csrf-token" content="(.*?)"/)[1]; // 正则提取
若需跨请求复用响应数据(如登录接口返回的token),可将值保存到环境变量或集合变量中:
pm.globals.set("access_token", jsonData.access_token); // 全局变量(所有请求可用)
pm.environment.set("api_url", pm.response.headers.get("X-API-Base-Url")); // 环境变量(当前环境可用)
在Tests标签页编写JavaScript断言,常用方法如下:
pm.test("Status code is 200", function() {
pm.response.to.have.status(200); // 验证状态码为200
});
pm.test("Body contains 'success'", function() {
pm.expect(pm.response.text()).to.include("success"); // 验证响应文本包含"success"
});
pm.test("Body equals expected string", function() {
pm.response.to.have.body('{"code":200,"message":"ok"}'); // 验证响应体完全匹配
});
pm.test("User ID is 101", function() {
var jsonData = pm.response.json();
pm.expect(jsonData.data.user_id).to.eql(101); // 验证user_id等于101
});
pm.test("Content-Type is present", function() {
pm.response.to.have.header("Content-Type"); // 验证响应头包含"Content-Type"
});
pm.test("Response time is less than 200ms", function() {
pm.expect(pm.response.responseTime).to.be.below(200); // 验证响应时间小于200ms
});
通过提取前一个接口的响应数据,作为下一个接口的参数(如用登录接口的token调用用户信息接口):
// 登录接口Tests中保存token
pm.globals.set("access_token", jsonData.access_token);
// 用户信息接口Pre-request Script中获取token
var token = pm.globals.get("access_token");
pm.request.headers.add({key: "Authorization", value: "Bearer " + token});
sudo snap install postman)或下载tar.gz包安装;console.log()输出信息(如console.log(jsonData)),在Console面板查看;pm.response.json()会报错),可通过Pretty按钮格式化响应体。