linux

Linux中Postman如何处理响应

小樊
55
2025-09-26 22:35:19
栏目: 智能运维

Linux环境下Postman处理响应的完整流程

1. 发送请求并查看基础响应

在Postman中创建或选择请求(GET/POST等),配置URL、Headers(如Content-Type: application/json)、Body(如JSON参数)后,点击Send按钮。响应结果会在下方Response面板显示,包含三部分核心内容:

2. 解析响应数据(JSON/Text/HTML)

JSON响应(最常见)

使用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]; // 获取数组最后一个元素

Text/HTML响应

// 示例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")); // 环境变量(当前环境可用)

3. 响应断言(验证是否符合预期)

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
});

4. 高级处理(接口关联/数据导出)

接口关联

通过提取前一个接口的响应数据,作为下一个接口的参数(如用登录接口的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});

导出响应数据

注意事项

0
看了该问题的人还看了