You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Postman中验证ca_meter对象包含指定字段

验证JSON中ca_meter对象是否包含cd_st字段

问题说明

你当前的测试代码存在两处关键问题:一是检查的字段为cd_en而非需求的cd_st;二是未做前置校验(比如ca_meter数组是否存在、是否为空),容易因接口结构变化引发无意义报错。

修正后的测试代码

基础版:检查ca_meter第一个对象包含cd_st

// 先解析响应体为JSON对象
const jsonData1 = pm.response.json();

pm.test("ca_meter第一个对象包含cd_st字段", function () {
    // 前置校验:确保ca_meter是数组且不为空
    pm.expect(jsonData1.data[0].ca_meter).to.be.an('array').that.is.not.empty;
    // 检查目标对象存在cd_st字段
    pm.expect(jsonData1.data[0].ca_meter[0]).to.have.property('cd_st');
});

严谨版:检查ca_meter所有对象都包含cd_st

如果需要确保ca_meter数组内每一个对象都存在cd_st字段,可以遍历数组做批量校验:

const jsonData1 = pm.response.json();

pm.test("ca_meter所有对象均包含cd_st字段", function () {
    pm.expect(jsonData1.data[0].ca_meter).to.be.an('array');
    // 遍历ca_meter数组,逐个校验字段存在性
    jsonData1.data[0].ca_meter.forEach(meterItem => {
        pm.expect(meterItem).to.have.property('cd_st');
    });
});

补充说明

  • 使用to.have.property('cd_st')比include('cd_st')语义更清晰,更贴合「检查对象是否存在某字段」的测试场景
  • 前置校验可以避免因接口返回结构变化(比如ca_meter为空数组)导致测试直接报错,让测试结果更易解读
  • 你提供的原始JSON存在语法错误(ca_equipment数组未闭合),已修正为合法格式供参考:
{
    "total": 1,
    "data": [
        {
            "ca_equipment": [
                {
                    "cd_en": null,
                    "cd_st": "2019-12-17T00:00:00",
                    "ck_d_equipment": "gas_stove",
                    "ck_id": "0223427C700B495490E540C54D3B4528",
                    "ck_model": null,
                    "ck_point": "70C220F236F34CA78EEDC2F4F16EA067",
                    "cl_status": 1,
                    "cv_d_equipment": "Плита",
                    "cv_model_name": null,
                    "cv_number": "Газовая  плита : 1"
                }
            ],
            "ca_meter": [
                {
                    "cd_en": null,
                    "cd_st": "2019-13-17T00:00:00",
                    "ck_id": "B48D81DD4sdfds4594B68D7D6FD846A410",
                    "ck_model": "99A24F5100F449A99B2C452CA3A9107F",
                    "ck_point": "70C220F23gsds34CA78EEDC2F4F16EA067",
                    "cl_status": 1,
                    "cv_model_name": "sdf",
                    "cv_number": "325233"
                }
            ]
        }
    ]
}

内容的提问来源于stack exchange,提问作者user23935724

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:21:05