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

相关推荐
may_一一1 天前
xpath定位:selenium和playwrightAnt Design / 表单类页面)
selenium·测试工具
daopuyun1 天前
CNAS/CMA软件检测实验室源代码漏洞测试工具选型要求与比对
软件测试·测试工具·软件检测·cnas认可·cma认定
Wpa.wk1 天前
接口自动化测试 - 请求构造和响应断言 -Rest-assure
开发语言·python·测试工具·接口自动化
AI_56781 天前
Postman接口测试提速技巧:批量请求+智能断言实践
测试工具·lua·postman
Luminbox紫创测控1 天前
整车自然暴晒与全光谱阳光模拟老化相关性研究
测试工具
Warren981 天前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
弹简特1 天前
【JavaEE06-后端部分】SpringMVC01-Spring MVC第一大核心URL 路由映射【建立连接】与 Postman 接口测试详解
java·spring boot·测试工具·spring·postman
测试大圣2 天前
软件测试基础知识总结(超全的)
软件测试·python·功能测试·测试工具·职场和发展·单元测试·测试用例
西瓜程序猿2 天前
传统礼簿收礼小工具:记了么,解决纸质收礼记账痛点
经验分享·测试工具·程序人生·全文检索·交友