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

相关推荐
程序员小远2 小时前
软件测试用例总结
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
爱丽_6 小时前
软件测试基础分类与核心概念整理
功能测试·测试工具·测试用例
测试人社区—83528 小时前
‌TCP/IP协议栈参数调优验证:软件测试从业者指南
网络·人工智能·网络协议·tcp/ip·测试工具·语音识别·压力测试
趙卋傑8 小时前
测试开发场景下常见的 MCP 服务
开发语言·python·测试工具·ai编程
林开落L9 小时前
【项目实战】博客系统完整测试报告(含自动化+性能测试)
python·功能测试·jmeter·自动化·postman·性能测试·xmind
oi..9 小时前
CSRF安全攻防:Referer 校验与 Token 防护详解
前端·网络·笔记·测试工具·安全·网络安全·csrf
HoneyMoose18 小时前
Postman 测试 API 如何上传文件
测试工具·postman
Tangcan-1 天前
博客系统测试报告
功能测试·测试工具·postman
dexie_tech1 天前
不惧高频挑战,电流传感器带宽升级
功能测试·科技·物联网·测试工具·能源