Переменные и окружения в Postman (Variables и Environment)
Давай рассмотрим основные сущности, которыми оперирует Postman:
-
Запросы
-
Коллекции
-
Окружения
1. Запросы (Requests)
Запрос представляет собой комбинацию URL, хедеров и Body (тела запроса). Postman позволяет сохранять запросы и использовать их в будущем там, где нам нужно.
Чтобы создать новый запрос, нажмем New — Request
Postman позволяет делать запросы к API. С помощью API-запроса можно получать и отправлять данные какому-либо бэкенд-сервису.
2. Коллекции (Collections)
Коллекции представляют собой группы запросов. Мы можем думать о коллекциях как о папках, в которых лежат запросы.
Как создать коллекцию в Postman:
1. Нажмем New — Collection
2. Введем имя (Name) и описание (Description) коллекции, после этого нажмем кнопку Create:
Коллекция может содержать любое число запросов. Запустить выполнение коллекции можно двумя способами:
-
с помощью Collection Runner
-
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.
-
В запросе "Verify Add Pet" измени URL с http://petstore.swagger.io/v2/pet/100 на http://petstore.swagger.io/v2/pet/{{petId}}. После добавления переменной ты увидишь, как {{petId}} перекрасится в оранжевый цвет. Postman распознал переменную из выбранного окружения. Если ты забудешь установить окружение, ты увидишь, что переменная {{petId}} красного цвета.
-
Сохрани изменения и запусти запрос (возможно, вначале тебе понадобится запустить запрос "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) / Настройка окружения / Переменные;