Можно ли повторно использовать значения динамических переменных без написания сценария предварительного запроса

У меня есть запрос, который принимает json. В теле запроса я хотел бы дважды использовать одну и ту же динамическую переменную. Так например:

{
    "description": "{{$randomFirstName}}'s Home", 
    "first_name": "{{$randomFirstName}}",
    "first_name": "{{$randomLastName}}",
    "more_fields": "..."
}

Однако простое повторение переменной, как указано выше, приводит к другому имени для полей description и first_name, когда я хочу, чтобы значение было одинаковым.

Как я могу этого добиться. Я думаю, что это должно быть возможно в сценарии предварительного запроса, хотя, если есть способ сделать эквивалент

{
    "description": "{{firstName=$randomFirstName}}'s Home", 
    "first_name": "{{firstName}}",
    "first_name": "{{$randomLastName}}",
    "more_fields": "..."
}

я бы предпочел, не заморачиваясь со сценарием предварительного запроса.


person kaan_a    schedule 19.03.2020    source источник


Ответы (1)


Этого можно добиться с помощью метода .replaceIn () и построение тела запроса в среде песочницы.

Добавьте это в Pre-request Script запроса POST:

let firstName = pm.variables.replaceIn("{{$randomFirstName}}")

let requestBody = {
    "description": `${firstName}'s Home`, 
    "first_name": `${firstName}`,
    "last_name": "{{$randomLastName}}",
    "more_fields": "..."
};

pm.variables.set("requestBody", JSON.stringify(requestBody)); 

В теле запроса добавьте эту переменную без кавычек:

{{requestBody}}

Когда вы отправляете запрос, он разрешает переменные и использует то же имя.

Вот пример использования службы Postman-echo:

введите здесь описание изображения

person Danny Dainton    schedule 19.03.2020