防止Postman Runner请求中的数字强制转换

xzabzqsa  于 2023-05-17  发布在  Postman
关注(0)|答案(2)|浏览(276)

我有一个包含20,000个条目的CSV文件,需要通过Postman发送。CSV文件中的某些数据在类似数字的数据上包含前导/尾随零。每当我在Postman中运行这个程序时,程序会自动将字符串强制转换为数字,并删除前导零。
我希望Runner发送请求时不删除变量的前导/尾随零。
CSV格式:

WebId,Type,Id,[additional info]
12345,Sale,099009,...
67890,Sale,034567,...

请求如下所示:
https://mydomain/api/sales/99009
https://mydomain/api/sales/34567
这些是不正确的,因为前导零被删除了。
来自Runner的请求应该如下所示:
https://mydomain/api/sales/099009
https://mydomain/api/sales/034567
我在预请求脚本中尝试了这个:

let value = pm.iterationData.get('Id')

pm.iterationData.set("Id", $string(value))

Runner使用文字值“{{Id}}”发送请求:
https://mydomain/api/sales/{{Id}}
如何强制Postman Runner使用CSV中的字符串值?我不想在20,000行代码中为每个有前导零的数字字符串加上引号。

f87krz0w

f87krz0w1#

这是预期的行为,甚至在github上有一个关于它的问题,并有评论解释它:https://github.com/postmanlabs/postman-app-support/issues/2734#issuecomment-501155045
如果你的ID有固定的长度,下面将做你想要的:

var lengthOfId = 6

var id = pm.iterationData.get('Id').toString()

while (id.length < lengthOfId) id = "0" + id;

pm.variables.set("Id", id)
jfewjypa

jfewjypa2#

最好的解决方案是使用在线工具将我的CSV转换为JSON。引号使Postman将值识别为字符串,不用说JSON将键和值封装在引号中。

相关问题