Как писать скрипты в Postman

scripts-writer

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

Также при помощи скриптов можно автоматизировать выполнение тестовых сценариев.

При написании скриптов используют различные языки программирования, один из которых – javascript.



Основы javascript для написания скриптов


Кратко рассмотрим основы написания кода на javascript.

1. Объявление переменных. Ключевое слово var позволяет объявить переменную.

Объявление переменной с именем name и строковым значением
var name = "Кот-астронавт";
Объявление переменной с именем age и числовым значением
var age = 4;
Объявление переменной с именем isGinger и логическим значением
var isGinger = true;

2. Создание функций. Функции создаются с ключевым словом function.

Создание функции sum с аргументами - двумя числами, которые будут сложены, а их сумма возвращена
function sum(a, b) {
    return a + b;
}

3. Вызов функций. Функции вызываются по имени и могут принимать аргументы, на основании которых будут произведены действия.

Вызов функции sum с аргументами - двумя числами, которые будут сложены при выполнении функции
sum(1, 3)
Вызов функции, которая при выполнении выведет сообщение в консоль
console.log("it's my log message")

Свойства и методы объекта pm в Postman


Postman предоставляет исполняемую среду, в которой можно писать скрипты на javascript - так называемый "Postman Sandbox". Код можно писать в разделах Pre-request Scripts и Tests, рассмотренных далее.

Вызвать специальные функции Postman можно обратившись к методам и свойствам объекта с именем pm.

1. pm.environment

Через объект pm можно обратиться к свойству environment и динамически получать и устанавливать значения переменных среды.

Обращение к объекту environment и вызов функции get позволяет получить значение переменной среды, передав параметром имя переменной
pm.environment.get("variableName")
Обращение к объекту environment и вызов функции set позволяет установить значение переменной среды, передав параметрами имя и значение переменной
pm.environment.set("variableName", "variableValue")

2. pm.globals

Через объект pm можно обратиться к свойству globals и динамически работать с глобальными переменными (доступными для всех сред).

Обращение к объекту globals и вызов функции get позволяет получить значение глобальной переменной, передав в качестве параметра имя переменной
pm.globals.get("variableName")
Обращение к объекту globals и вызов функции set позволяет установить значение глобальной переменной, передав параметрами имя и значение переменной
pm.globals.set("variableName", "variableValue")

3. pm.test

Через объект pm можно обратиться к методу test, в котором можно написать свой тест.

Вызов функции test с двумя параметрами - названием теста и функцией, которая будет выполнена и в зависимости от результата её выполнения тест будет считаться успешно пройденным либо проваленным
pm.test("Let's check if code is 200",
    function () {
        pm.response.to.have.status(200);
    }
);

Pre-request скрипты в Postman


Скрипты, описанные в разделе Pre-request Script выполняются перед тем, как будет отправлен запрос. Это может быть любой код на javascript, но ключевой объект, к свойствам которого мы получаем доступ в разделе Pre-request – это request. Обратиться к нему можно через pm.request. После нажатия точки, как видно на рисунке, в выпадающем списке отобразится список всех доступных методов.

pre-request-script-example

Пример скрипта в секции Pre-request в Postman


Обращение к объекту request (запрос) и вызов функции addHeader с аргументом - заголовком, который будет добавлен в запрос
pm.request
    .addHeader("Authorization", "Bearer jwt");

Test скрипты в Postman


Скрипты, описанные в разделе Tests выполняются уже после того, как запрос был отправлен и получен ответ от сервера. Помимо возможности обращаться к request, в разделе Tests мы также получаем доступ к response. Обратиться к нему можно через pm.response, список всех доступных методов отобразится, после ввода pm.response и нажатия точки.

Именно в Tests чаще всего пишутся автоматизированные проверки, чтобы убедиться, что ответ сервера соответствует ожиданиям. Чтобы написать тест вызовите pm.test, и передайте туда название теста и функцию, которая будет выполнена, а её результат (true/false) изменит статус выполнения теста на PASS либо FAIL. Результаты выполнения таких автотестов отображаются в секции Test Results.

test-script-example

Пример скрипта в секции Tests в Postman


Обращение к объекту response (ответ), далее к переменной code, в результате чего будет получен статус код ответа
pm.response.code
Обращение к объекту response (ответ) и вызов функции json(), которая приводит тело ответа в JSON формат либо выбрасывает ошибку, если тело ответа невозможно привести к json
pm.response.json()

Зачем писать скрипты в Postman


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

Для написания полноценных и всеобъемлющих автоматизированных тестовых сценариев придётся изучить язык программирования, например, Java и погрузиться в экосистему всевозможных тестовых фреймворков и инструментов, таких как Selenium, Rest Assured и других.