Javascript Postman:在环境变量声明中使用请求名称

Javascript Postman:在环境变量声明中使用请求名称,javascript,arrays,json,dynamic,postman,Javascript,Arrays,Json,Dynamic,Postman,我想使用Postman以动态方式设置环境变量,并基于请求名称使用dataObject..attribute2的值。此脚本在Pre-req部分中使用 情况: 我有一个json数据对象: var dataObject = { "request01": { "attribute1": 123456789, "attribute2": "asdfghjkl" }, "request02": { "attribute1": 9876

我想使用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.setEnvironmentVariable(
“动态分布2”,
数据对象[request.info.name].attribute2
);

获取
请求名称的正确语法是:

pm.info.requestName

因此,您需要使用类似的方法来获得所需的值:

pm.environment.set("dynamicAttribute2", dataObject[`${pm.info.requestName}`].attribute2);
可能值得您仔细阅读,以了解有关
pm.*
API函数的更多信息:


不幸的是,如果我使用这个``console.log(“dynamicAttribute2:”+dataObject[request.info.name].attribute2);`````我得到错误:“TypeError:无法读取未定义的属性'name'”