【问题标题】:Postman: Use the request name within the declaration of an environment variablePostman:在环境变量的声明中使用请求名称
【发布时间】:2020-02-20 23:06:51
【问题描述】:

我想使用 Postman 以动态方式设置环境变量,并根据请求名称使用 dataObject..attribute2 的值。此脚本在 Pre-req 部分中使用。

情况: 我有一个 json 数据对象:

var dataObject = {

    "request01": {
        "attribute1": 123456789,
        "attribute2": "asdfghjkl"
    },
    "request02": {
        "attribute1": 987654321,
        "attribute2": "lkjhgfdsa"
    }
}

我在同一个文件夹中有这两个请求的名称:

  • 请求01
  • 请求02

现在,我想定义这个分配的值,所以我将attribute2的值赋给变量dynamicAttribute2。 如果我以静态方式执行此操作,则如下所示:

postman.setEnvironmentVariable("dynamicAttribute2", dataObject.request02.attribute2);

现在这个问题如何以动态方式正确执行,具体取决于每个请求名称。 我试着这样做:

postman.setEnvironmentVariable("dynamicAttribute2", dataObject.{request.info.name}.attribute2);

问题在于 Postman 无法解析对属性的对象引用。

问题

正确的使用方法是什么?

【问题讨论】:

    标签: javascript arrays json dynamic postman


    【解决方案1】:

    获取Request Name 的正确语法是:

    pm.info.requestName

    所以你需要使用这样的东西来获得你想要的价值:

    pm.environment.set("dynamicAttribute2", dataObject[`${pm.info.requestName}`].attribute2);
    

    可能值得您仔细阅读以了解有关 pm.* API 函数的更多信息:

    https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/#pm

    【讨论】:

      【解决方案2】:

      您可以使用方括号动态访问对象的键(以检索或设置属性),类似于数组。这应该有效:

      postman.setEnvironmentVariable(
        "dynamicAttribute2",
        dataObject[request.info.name].attribute2
      );
      

      【讨论】:

      • 不幸的是,如果我使用这个 ``` console.log("dynamicAttribute2:" + dataObject[request.info.name].attribute2); ``` 我收到错误:“TypeError:无法读取未定义的属性“名称””
      猜你喜欢
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多