postman中的Tests,怎么获取返回的response中的stateCde

在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");

使用建议

  1. 先检查响应格式:确保响应是JSON格式

  2. 添加错误处理:使用try-catch处理解析异常

  3. 验证字段存在:在访问字段前先检查是否存在

  4. 使用断言:用pm.expect()进行验证

  5. 保存变量:可以将重要的值保存到环境/全局变量中供后续使用

选择哪种方法取决于你的具体需求:

  • 如果是要获取HTTP状态码,使用pm.response.code

  • 如果是要获取响应体中的stateCde字段,先解析JSON再获取对应的属性

相关推荐
Hy行者勇哥17 小时前
软件测试完整体系
测试工具
TunerT_TQ20 小时前
Valhalla 静态工程审阅 #012|Hertz 源码证据驱动评测【大厂开源基础设施特辑】
测试工具·微服务·开源·github·字节跳动·cloudwego·http框架
Dr.kangder20 小时前
嵌入式软件接口测试:从理论到实践的全面指南
测试工具·架构·嵌入式·测试覆盖率
冷凝娇2 天前
【Postman】2026总结
测试工具·postman
天才测试猿2 天前
实例介绍:Unittest框架及自动化测试实现流程
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
TunerT_TQ2 天前
Valhalla 静态工程审阅 #009|Continue 源码证据驱动评测【大厂开源基础设施特辑】
vscode·测试工具·开源·llm·github·jetbrains·ai编程助手
Luminbox紫创测控3 天前
AM0太阳模拟器如何精准模拟太空环境:提升地面测试精度
测试工具·安全性测试·测试标准
我的xiaodoujiao3 天前
快速学习Python基础知识详细图文教程14--模块
开发语言·python·学习·测试工具
东舟技术3 天前
AI全链路测试智能体上线啦!
人工智能·功能测试·测试工具·自动化
Tinyfacture3 天前
接口自动化之添加商品(pytest)
python·测试工具·自动化·pytest