Skip to content

Переменные и окружения в Postman (Variables и Environment)

Давай рассмотрим основные сущности, которыми оперирует Postman:

  1. Запросы

  2. Коллекции

  3. Окружения

1. Запросы (Requests)

Запрос представляет собой комбинацию URL, хедеров и Body (тела запроса). Postman позволяет сохранять запросы и использовать их в будущем там, где нам нужно.

Чтобы создать новый запрос, нажмем New — Request

Postman

Postman

Postman позволяет делать запросы к API. С помощью API-запроса можно получать и отправлять данные какому-либо бэкенд-сервису.

2. Коллекции (Collections)

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

Как создать коллекцию в Postman:

1. Нажмем New — Collection

Postman

2. Введем имя (Name) и описание (Description) коллекции, после этого нажмем кнопку Create:

Postman

Коллекция может содержать любое число запросов. Запустить выполнение коллекции можно двумя способами:

  1. с помощью Collection Runner

  2. c помощью Newman

3. Окружение (Environments)

Postman-окружение – это просто коллекция переменных, которые можно использовать в коллекции Postman.

Окружения в Postman позволяют запускать запросы и коллекции, используя разные наборы данных. Например, мы можем создавать разные окружения в Postman для Dev, QA и Production серверов. В каждом из окружений будут свои собственные настройки: например, URL, auth token-ы и пароли, API-ключи и т.п. Окружения представляют собой наборы пар «ключ-значение».

Создать окружение очень просто. Давай рассмотрим этот алгоритм на примере зоомагазина.

1. Нажми на значок шестеренки в правом верхнем углу окна, а затем на кнопку "Add". Дай окружению имя (например, "Pet Store"), а затем нажми на "Add".

Параметризация — одна из самых полезных особенностей Postman.

Часто необходимо выполнить один и тот же запрос на разных наборах данных. С помощью параметризации можно использовать переменные при выполнении запросов.

В Postman параметры создаются с помощью двойных скобок: {{test}}.

Окружение ничем не поможет, пока ты не создашь в нем переменные, поэтому давай этим займемся.

2. После добавления нового окружения возвращайся в окно "Manage Environments". Нажми на окружение, чтобы отредактировать его.

3. В секции "key" введи petId, а в "value" введи 100. Нажми на кнопку "Update", и вот ты добавил новую переменную.

4. Закрой окно "Manage Environments". В правом верхнем углу ты увидишь выпадающее меню, и сейчас там написано "No Environment". Кликни на селекторе и выбери "Pet Store". Теперь при запуске запросов в твоей коллекции они будут выполняться в окружении "Pet Store".

У нас уже настроена одна переменная – petId, равная 100. Давай посмотрим, как мы можем ее использовать.

Во-первых, ее можно использовать в URL.

  1. В запросе "Verify Add Pet" измени URL с http://petstore.swagger.io/v2/pet/100 на http://petstore.swagger.io/v2/pet/{{petId}}. После добавления переменной ты увидишь, как {{petId}} перекрасится в оранжевый цвет. Postman распознал переменную из выбранного окружения. Если ты забудешь установить окружение, ты увидишь, что переменная {{petId}} красного цвета.

  2. Сохрани изменения и запусти запрос (возможно, вначале тебе понадобится запустить запрос "Add Pet", чтобы в базе точно появился питомец с id 100). Ты увидишь, что запрос соответствует питомцу с id 100 по ответу на этот запрос.

Переменную можно также использовать в заголовках запроса. В этой коллекции мы не будем этим заниматься, но пример такого использования – это отправка токена авторизации вместе с запросом. Вместо того, чтобы каждый раз вводить токен, ты можешь сохранить его как переменную по имени "token", а затем передавать ее в заголовке вот так: {{token}}.

Подробнее о создании переменной с токеном ты можешь узнать по ссылке.

Возвращаясь к нашей переменной petId: мы можем использовать ее в теле запроса. Открой запрос "Add Pet" и измени тело запроса, чтобы оно выглядело так:

{

"id": "{{petId}}",

"category": {

"id": 1,

"name": "Cat"

},

"name": "Grumpy Cat",

"photoUrls": [

"https://pbs.twimg.com/profile_images/948294484596375552/RyGNqDEM_400x400.jpg"

],

"tags": [

{

"id": 1,

"name": "Mixed breed"

}

],

"status": "available"

}

Мы заменили id 100 на нашу переменную. Это полезно для тестирования. Предположим, мы решили не добавлять питомца с id 100, а предпочли другое значение. Это легко изменить, потому что нам нужно изменить одну переменную в одном месте (в окружении Pet Store), а не менять ее в каждом запросе, где использовался id 100. Не забудь сохранить запрос "Add Pet".

Еще мы можем использовать переменную в правилах. Вернись к запросу "verify Add Pet" и добавь вот такое правило в секцию "Tests":

var jsonData = JSON.parse(responseBody);

tests["Correct pet ID is returned"] = jsonData.id == environment.petId;

Как можно заметить, это правило отличается от прочих правил нашего запроса. Другие правила написаны в новом стиле правил Postman, а это – в старом. Это правило сравнивает id, который возвращен телом ответа (jsonData.id) с id, установленной в качестве переменной окружения (environment. petId). Сохрани этот запрос, прогони его, и ты увидишь, как правило отработает.

И, наконец, мы можем устанавливать переменные окружения в зависимости от тела ответа на запрос. Давай продублируем наш запрос "Add Pet", и переименуем копию в "Add Pet With No Id" (о том, как создавать коллекцию в Postman, ты можешь почитать по ссылке).

Мы будем использовать этот запрос для добавления питомца без указания id, чтобы программа назначила его самостоятельно. Измени тело запроса вот так:

{

"category": {

"id": 1,

"name": "Cat"

},

"name": "Grumpy Cat",

"photoUrls": [

"https://pbs.twimg.com/profile_images/948294484596375552/RyGNqDEM_400x400.jpg"

],

"tags": [

{

"id": 1,

"name": "Mixed breed"

}

],

"status": "available"

}

Обрати внимание, что id, находившийся в начале запроса (petId) теперь удален. Теперь перейди во вкладку "Tests" и добавь там инструкцию:

var jsonData = JSON.parse(responseBody);

postman.setEnvironmentVariable("newPetId", jsonData.id);

Это правило интерпретирует JSON-данные и устанавливает значение id, возвращенное сервером, в качестве новой переменной окружения по имени "newPetId". Обрати внимание, что и эта инструкция написана в старом стиле. Давай сохраним наш запрос и запустим его. После прогона запроса нажми на иконку глаза в правом верхнем углу экрана. Это быстрый просмотр окружения, позволяющий увидеть его переменные. Ты увидишь новую переменную newPetId со значением, присвоенным id твоего свежесозданного питомца! Эта фича позволяет не мучиться с созданием переменной заранее: Postman сделает это за нас.

Мы рассмотрели только одну переменную – petId. Ты можешь добавить переменные для имени питомца, ссылок на фото, тип статуса, и чего угодно еще. Попрактикуйся в коллекции запросов. Чем больше переменных ты создашь, тем легче будет поддерживать тесты.

С оригиналами статей ты можешь ознакомиться по ссылке и на сайте testengineer.ru.

Рекомендуем также ознакомиться с дополнительными материалами по теме:

Postman для REST API запросов. Быстрый старт и переменные;

Тестирование API. Всё о Переменных в Postman;

Урок 27 / QA с Нуля / POSTMAN ДЛЯ ТЕСТИРОВЩИКА (Часть 3) / Настройка окружения / Переменные;

Postman для QA. Переменные;

Семь советов по работе с POSTMAN.