邮件脚本在访问变量时生成不同的值

时间:2017-12-21 12:06:09

标签: rest api postman

我尝试使用POSTMAN脚本生成密码并确认密码,但无济于事。 我试图生成新密码的预请求脚本是这样的:

var newPass = "Ab{{$randomInt}}{{$randomInt}}!";
pm.environment.set("cs_newPassword", newPass);

在请求正文中我尝试获取cs_newPassword变量并将其作为新密码和确认密码发送:

{
"mobileBankerId" : "{{id_cs}}",
"currentPassword" : "{{password_cs}}",
"newPassword" : "{{cs_newPassword}}",
"confirmPassword" : "{{cs_newPassword}}"    
}

当服务器接受新密码和确认密码时,它具有不同的值,因此被拒绝,因为新密码和密码确认不匹配。

当我使用“生成代码段”功能查看代码时,会显示变量cs_newPassword内容并且它具有相同的值。

实际上我调用生成密码脚本只有一次,但为什么当我尝试访问变量时它有不同的值?

1 个答案:

答案 0 :(得分:1)

我认为你不能以这种方式使用全局函数,它们似乎只能使用Headers或URL等。

  

Postman还有一些动态变量,您可以在请求中使用它们。 > >这主要是一个实验。很快就会增加更多功能。 >请注意,动态变量不能在沙箱中使用。你只能使用> >它们在请求网址/标题/正文中以{{..}}格式显示。

作为替代方案,你可以做这样的事情。 Postman中的{{$ randomInt}}函数是0到1000之间的数字,但您可以在本机JavaScript中执行此操作。

var randomInt = Math.floor((Math.random() * 1000))
var newPass = `Ab${randomInt}${randomInt}!`;
pm.environment.set("cs_newPassword", newPass);