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

Postman解析JSON响应created_at字段 提取日期值实现超30天用户判定

Postman提取created_at字段实现30天用户判定方案

你之前的脚本仅对响应文本做字符串匹配,没有将响应解析为结构化JSON对象,无法提取字段值做计算,按下面的方法实现即可。

核心实现逻辑

  • 调用pm.response.json()把接口返回的内容转为JavaScript可操作的JSON对象
  • 遍历返回的用户数组,取出每个用户的created_at字段,该字段是标准ISO 8601时间格式,可直接传入Date构造函数转为时间对象
  • 计算当前时间和用户创建时间的毫秒差值,换算为天数后和30天阈值比对
  • 筛选出创建时长超过30天的用户,传递给后续移除逻辑使用

可直接运行的完整脚本

// 解析响应为JSON对象
const resp = pm.response.json();
// 30天对应的毫秒值,避免不同月份天数不一致导致计算误差
const THIRTY_DAYS_MS = 30 * 24 * 60 * 60 * 1000;
// 存储需要移除的用户列表
const needRemoveUsers = [];

// 基础响应结构校验,避免接口异常时脚本报错
pm.test("响应结构合法", function () {
    pm.expect(resp).to.have.property("user").that.is.an("array");
});

// 遍历用户逐个校验创建时间
resp.user.forEach(user => {
    pm.test(`用户ID${user.id}存在合法created_at字段`, function () {
        pm.expect(user).to.have.property("created_at").that.is.a("string");
    });

    const createTime = new Date(user.created_at);
    const timeDiff = Date.now() - createTime.getTime();

    if (timeDiff > THIRTY_DAYS_MS) {
        needRemoveUsers.push(user);
        console.log(`用户[${user.id}]创建时间超过30天,加入移除列表,邮箱:${user.email}`);
    }
});

// 将待移除用户列表存入环境变量,后续移除用户的接口可直接读取使用
pm.environment.set("needRemoveUsers", JSON.stringify(needRemoveUsers));

// 后续可直接在这里调用pm.sendRequest发移除请求,或者配合集合运行器跳转到移除用户的请求执行

注意事项

  • 字段末尾的Z代表UTC零时区时间,JS原生Date对象可直接识别,不需要额外做时区转换
  • 用毫秒差值计算留存时长,可以避开不同月份天数不同、闰年等场景下的计算错误
  • 增加响应结构校验逻辑,避免接口返回异常格式时脚本直接中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:45:59