【问题标题】:There was an error in evaluating the Pre-request Script: ReferenceError: $randomEmail is not defined评估预请求脚本时出错:ReferenceError: $randomEmail is not defined
【发布时间】:2020-03-30 11:04:42
【问题描述】:

我正在尝试发送 POST 请求以使用 Postman 创建用户。为此需要动态用户电子邮件和密码。

我正在尝试在 Pre-request Script 中的 Postman 内置变量 $randomEmail 的新变量返回中赋值 -

var new_user_email = $randomEmail;
var new_user_password = $randomPassword;
console.log(new_user_email);
console.log(new_user_password);
pm.globals.set("new_user_email", "new_user_email");
pm.globals.set("new_user_password", "new_user_password");

但它会抛出异常ReferenceError: $randomEmail is not defined

如果我像下面这样直接在请求正文中使用,它可以正常工作

{
  "email": "{{$randomEmail}}",
  "password": "{{$randomPassword}}"
}

关于在预请求脚本中使用它并存储以供进一步使用的语法有什么想法吗?

【问题讨论】:

    标签: javascript api postman web-api-testing postman-pre-request-script


    【解决方案1】:

    在脚本部分你不能直接调用 $randomEmail ,你必须使用命令 pm.globals.get('varName')

    【讨论】:

      【解决方案2】:

      您不能在沙盒环境中使用{{...}} 语法。

      由于请求生成器中的变量是使用字符串访问的 替换,它们可以在请求构建器中的任何地方使用 您可以添加文本。这包括 URL、URL 参数、标头、 授权、请求正文和标头预设。

      https://learning.getpostman.com/docs/postman/environments-and-globals/variables/#accessing-variables-in-the-request-builder

      可以使用.replaceIn() 函数为该语法使用字符串替换。

      例如:

      var new_user_email = pm.variables.replaceIn({{$randomEmail}}")
      

      就个人而言,我会像您所做的那样直接在 POST 正文中使用 dynamic variables

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        • 2020-03-21
        • 2014-03-03
        • 2021-03-29
        • 2021-01-16
        • 2017-06-10
        相关资源
        最近更新 更多