Почтальон: используйте имя запроса в объявлении переменной среды - PullRequest
2 голосов
/ 24 октября 2019

Я хотел бы использовать Postman для динамической установки переменной окружения и использовать значения dataObject..attribute2 на основе имени запроса. Этот сценарий используется в разделе Pre-req.

Ситуация: у меня есть объект данных json:

var dataObject = {

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

И у меня есть эти 2 запроса в одной папке с именами:

  • request01
  • request02

Теперь я хочу определить значение этого распределения, поэтому я присваиваю значение attribute2 переменной dynamicAttribute2. Если я делаю это статическим образом, это выглядит так:

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

Теперь вопрос, как это сделать правильно, динамически, в зависимости от имени запроса, каждый. Я пытался сделать это:

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

Проблема в том, что почтальон не может разрешить ссылку на объект для атрибута.

Вопрос

Что такоеправильный способ использовать это?

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Правильный синтаксис для получения Request Name:

pm.info.requestName

Поэтому вам нужно использовать что-то вроде этого, чтобы получить желаемое значение:

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

Возможно, стоит ознакомиться с этим, чтобы узнать больше о функциях API pm.*:

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

0 голосов
/ 24 октября 2019

Вы можете динамически обращаться к ключу объекта (чтобы получить свойство или установить его), используя квадратные скобки, аналогично массивам. Это должно работать:

postman.setEnvironmentVariable(
  "dynamicAttribute2",
  dataObject[request.info.name].attribute2
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...