【问题标题】:Postman: UTC checker邮递员:UTC检查员
【发布时间】:2020-10-30 04:26:37
【问题描述】:

我一直在寻找最好的解决方案:

{
  startDate: *insert UTC here*
}

在我的 Postman 测试中,我需要验证我的 startDate 是否为 UTC 格式。

【问题讨论】:

  • UTC 格式是什么意思?你试过什么了?这在 Postman 中是什么样子的?实际的响应数据结构是什么?创建一个缺乏细节的问题不是在寻找解决方案,而是在等待解决方案。
  • 首先我尝试使用字符串函数包含但邮递员不支持它。 UTC 格式 2018-02-28T00:00:00.000Z 像这样,tests["Same start date"] =jsonData.data.startDate.includes(start_date_value);第一次尝试:使用包含
  • "邮递员不支持"...什么意思? PostMan 将发送您告诉它的任何值。上下文是什么?你遇到了什么错误?编辑问题以包含正确的代码、错误消息以及对您实际尝试实现的目标的清晰解释。谢谢。
  • 发布一个涉及使用正则表达式匹配特定字符串格式的答案是直截了当的,但如果这不是您所需要的,那将是可怕且毫无意义的。没有更多细节,任何人都很难提供帮助。

标签: json postman


【解决方案1】:

这是一种使用正则表达式检查日期格式的糟糕方法,我不建议这样做,但它工作:

var dateFormat = "2018-02-28T00:00:00.000Z"
pm.test("match UTC Format", () => {
    pm.expect(dateFormat).to.match(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/)
})

这是针对 Windows 原生客户端运行的,如果您仍在使用 chrome 扩展,它将无法工作,因为它没有 pm.* API。

在您的测试中,您可以将我使用的演示 dateFormat 变量替换为评论中示例中的 jsonData.data.startDate

【讨论】:

    【解决方案2】:

    使用 Javascript 日期对象来验证日期。 只有在格式正确且包含真实日期的情况下才会通过。

    stringWithISODate = '2020-10-23T00:00:00.000Z';
    thedate = new Date(stringWithISODate);
    theDateString = thedate.toISOString();
    if (stringWithISODate == theDateString) {
        console.log('yea it is ISO');
    }
    
    
    
    stringWithUTCDate = 'Fri, 23 Oct 2020 00:00:00 GMT';
    thedate = new Date(stringWithUTCDate);
    theDateString = thedate.toUTCString();
    if (stringWithUTCDate == theDateString) {
        console.log('yea it is UTC');
    }
    

    【讨论】:

      猜你喜欢
      • 2015-04-01
      • 2020-10-10
      • 2017-02-14
      • 2019-10-06
      • 2020-01-21
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多