在Postman的Tests标签中,有多种方法可以获取响应中的状态码。以下是常用的几种方式:
1. 获取HTTP状态码
// 方法1:使用 pm.response.code
console.log("状态码:", pm.response.code);
// 方法2:使用 pm.response.status
console.log("状态码:", pm.response.status);
2. 获取响应体中的特定字段(如stateCde)
如果你的响应是JSON格式,并且你想获取响应体中的stateCde字段:
// 解析JSON响应
let responseData = pm.response.json();
// 获取stateCde字段
let stateCode = responseData.stateCde;
console.log("stateCde:", stateCode);
// 或者使用方括号表示法
let stateCode2 = responseData["stateCde"];
console.log("stateCde:", stateCode2);
3. 完整示例
// 获取HTTP状态码
pm.test("HTTP状态码是200", function() {
pm.response.to.have.status(200);
console.log("HTTP状态码:", pm.response.code);
});
// 获取响应体中的stateCde字段
pm.test("stateCde存在", function() {
const response = pm.response.json();
// 检查stateCde是否存在
pm.expect(response).to.have.property("stateCde");
// 获取并记录stateCde的值
const stateCode = response.stateCde;
console.log("stateCde值:", stateCode);
// 可以对stateCde进行断言
pm.expect(stateCode).to.equal("SUCCESS");
});
// 或者简写方式
const jsonData = pm.response.json();
if (jsonData && jsonData.stateCde) {
console.log("stateCde:", jsonData.stateCde);
// 设置环境变量或全局变量
pm.environment.set("stateCode", jsonData.stateCde);
pm.collectionVariables.set("globalStateCode", jsonData.stateCde);
}
4. 处理可能的异常
try {
const jsonData = pm.response.json();
// 检查stateCde是否存在
if (jsonData.hasOwnProperty("stateCde")) {
const stateCode = jsonData.stateCde;
console.log("获取到的stateCde:", stateCode);
// 使用获取的值
pm.test("stateCde应该为SUCCESS", function() {
pm.expect(stateCode).to.equal("SUCCESS");
});
} else {
console.log("响应中未找到stateCde字段");
}
} catch (error) {
console.log("解析响应失败:", error.message);
}
5. 使用Tests的常用场景
// 1. 验证HTTP状态码
pm.test("状态码是200", function() {
pm.response.to.have.status(200);
});
// 2. 验证stateCde字段值
pm.test("stateCde应该是SUCCESS", function() {
const jsonData = pm.response.json();
pm.expect(jsonData.stateCde).to.equal("SUCCESS");
});
// 3. 将stateCde保存到环境变量
const responseJson = pm.response.json();
if (responseJson && responseJson.stateCde) {
pm.environment.set("currentStateCode", responseJson.stateCde);
}
// 4. 在后续请求中使用
console.log("保存的stateCde:", pm.environment.get("currentStateCode"));
6. 查看响应内容
// 查看完整的响应体
console.log("完整响应:", pm.response.text());
// 查看响应头
console.log("响应头:", pm.response.headers);
// 查看响应时间
console.log("响应时间:", pm.response.responseTime + "ms");
使用建议
-
先检查响应格式:确保响应是JSON格式
-
添加错误处理:使用try-catch处理解析异常
-
验证字段存在:在访问字段前先检查是否存在
-
使用断言:用pm.expect()进行验证
-
保存变量:可以将重要的值保存到环境/全局变量中供后续使用
选择哪种方法取决于你的具体需求:
-
如果是要获取HTTP状态码,使用
pm.response.code -
如果是要获取响应体中的stateCde字段,先解析JSON再获取对应的属性