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再获取对应的属性

相关推荐
测试秃头怪4 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
程序员杰哥13 小时前
接口测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
尼古拉斯·纯情暖男·天真·阿玮16 小时前
正交表的概念与生成
测试工具
城中南小16 小时前
人机Agent团队协同:从Managed Agents原理到Multica实践
selenium·测试工具
测试老哥1 天前
Pytest自动化测试详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
Luminbox紫创测控2 天前
大面积太阳模拟器设计原理与高均匀度辐照实现方法
人工智能·测试工具·安全性测试·测试标准
m0_752035632 天前
postman重新安装后历史接口数据不见了
测试工具·postman
程序员小远2 天前
性能测试之性能调优
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
xy34532 天前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark
PhotonixBay2 天前
共聚焦成像核心原理:针孔、PSF与三维形貌测量技术
人工智能·测试工具·算法