【问题标题】:How to get dynamic and adaptive timestamp variable in Postman?如何在 Postman 中获取动态和自适应时间戳变量?
【发布时间】:2021-05-26 15:51:17
【问题描述】:

我需要做的是生成几个时间戳:timeNow、提前+1y 和提前+5 年以及其他几个随机日期。所有需要在 "Pre-request Script" 中进行 Postman API 测试,其中 rRequired 格式为:YYYY-MM-DDTHH:mm:ss.mssZ 实际上需要喜欢喜欢 2021-02-24T12:05:35.423Z

首先,当我尝试使用 {{$isoTimestamp}} 动态变量时,它并没有做任何事情,这已经令人沮丧。 其次,我设法手动创建了一个“现在”日期,然后将它与看起来像 **** 的“Z”连接起来

const moment = require('moment');    
let eventDate = moment().format("YYYY-MM-DDTHH:mm:ss.ms);    
let eventDateTime = eventDate + "Z";

所以,这给了我想要的时间格式(实际上是字符串),但不提供任何获取这些随机日期的可能性,now+1year 和 now+5years。我对此有点陌生,所以它真的让我崩溃了。有人有什么想法吗,请漂亮吗?

【问题讨论】:

    标签: date datetime variables postman


    【解决方案1】:

    您可以在邮递员脚本会话中获取动态变量:

    console.log(pm.variables.replaceIn("{{$isoTimestamp}}"))
    

    你应该使用 replaceIn

    还要添加一些迄今为止的内容,例如:

    如果您的开始时间格式为 YYYY-MM-DDTHH:MM:ss.SSSZ,则使用:

    const moment = require('moment');
    
    if (pm.info.iteration === 0) {
    
        pm.collectionVariables.set("startTime", moment.utc())
    
    } else {
    
        let measuredOnUtc = pm.collectionVariables.get("startTime")
    
        measuredOnUtc = moment(measuredOnUtc)
    
        pm.collectionVariables.set("startTime", measuredOnUtc.add(3, 'hours').utc())
    
    }
    

    如果 starttime 格式为 DD-MM-YYYYTHH:MM:ss.SSS[Z] ,则使用:

    const moment = require('moment');
    
    if (pm.info.iteration === 0) {
    
        pm.collectionVariables.set("startTime", moment.utc().format("DD-MM-YYYYTHH:MM:ss.SSS[Z]"))
    
    } else {
    
        let measuredOnUtc = pm.collectionVariables.get("startTime")
    
        measuredOnUtc = moment(measuredOnUtc, "DD-MM-YYYYTHH:MM:ss.SSS[Z]")
    
        pm.collectionVariables.set("startTime", measuredOnUtc.add(3, 'hours').format("DD-MM-YYYYTHH:MM:ss.SSS[Z]"))
    
    }
    

    请求正文应该是 :slight_smile:

    {
    
    bbla:bla,
    
    "startTime": "{{startTime}}",
    
    bbla:bla
    }
    

    【讨论】:

    • 是的,所以console.log(pm.variables.replaceIn("{{$isoTimestamp}}")) 给了我一个错误,说replaceIn 不是一个函数(它是7.15.1 Postman 版本,所以它可能还没有实现)。
      当涉及到数据添加时,它工作正常,但是当我想console.log("New Date is: " + newDate) - 然后它失去了数据格式,这很有趣,因为consoloe.log(newDate) 工作正常 - 当添加该评论时,格式是重置为默认。
      另外,我如何减去 1 年/月/小时? :D
    • measuredOnUtc.add(3, 'hours') , measureOnUtc.add(3, 'years , measureOnUtc.add(3, 'days')')
    • measuredOnUtc.add(3, 'months')
    • 更新到最新邮递员为什么还在使用旧邮递员
    • 这是企业软件 - 真的不知道,伙计。我将尝试获取有关此内容的更新,因为在此问题上的更改很棒。难道你不知道我如何减去一个月吗?
    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2018-11-27
    • 2020-04-26
    • 1970-01-01
    相关资源
    最近更新 更多