【问题标题】:Postman big number issue [duplicate]邮递员大号问题[重复]
【发布时间】:2021-05-22 21:35:15
【问题描述】:

我需要将下面的 EventTypeId 存储在 Postman 的全局变量中,以供以后的测试使用:

{
    "EventTypeId": 8565382127936807869,
    "ValueName": "Engine Load Calculated",
    "FormatType": "Value",
    "DisplayUnits": "%",
    "EventType": "Custom",
    "Description": "Test Roja"
}

由于 JS 限制,该值存储为 8565382127936808000,与原始值相比失败。

有办法保存吗?

【问题讨论】:

  • 把它变成一个字符串
  • 谢谢文德林。请你能告诉我一些关于如何在 Postman 中做的代码吗?我会很高兴的。

标签: javascript postman


【解决方案1】:
str =  pm.response.text().replace(/[:|: *](\d+)/g,'"$1"');

console.info(str)

console.log(JSON.parse(str).EventTypeId)

pm.globals.set("value",JSON.parse(str).EventTypeId)

这里我们将该数字用双引号括起来,然后解析为 json,以便您获得正确的字符串值

【讨论】:

  • 可能需要在此处调整此 sn-ps 以提供一种保存到全局变量 anf 的方法,然后使用该值的潜在方法是后续请求?
  • @DannyDainton 我认为 OPS 意识到主要问题是关于四舍五入的问题,不管怎样,对于未来的读者来说:D
【解决方案2】:

您可以将值保存为字符串:

pm.globals.set('event_id', String(pm.response.json().EventTypeId)) 

当你需要在脚本中使用它时:

let eventTypeId = parseInt(pm.globals.get('event_id')

【讨论】:

  • 嗨,丹尼,它会在将其转换为字符串之前将其四舍五入为有效数字
  • 它是 2^63,JS 中的最大长度是 2^53
  • 公平点,甚至没有尝试过?
  • :D 是的,我也很头疼,这是一个有趣的问题,如果 postman 本身有一个本地解决方案,那就太好了
  • 这不是一个真正的“邮递员”问题,但以一种您不必跳过箍的方式处理它会更好。
猜你喜欢
  • 2020-05-23
  • 2017-03-08
  • 1970-01-01
  • 2021-12-09
  • 2018-07-12
  • 1970-01-01
  • 2019-09-05
  • 2022-10-01
  • 1970-01-01
相关资源
最近更新 更多