Скрипт — это набор команд, позволяющий автоматизировать рутинные,
повторяющиеся действия. Такие, как сохранение
токена доступа в переменную при
первичном логине и его автоматическая подстановка в последующие запросы.
При помощи скриптов можно автоматизировать выполнение тестовых сценариев.
Скрипты пишут на различных языках программирования,
один из которых — 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 можно обратиться к
свойству 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 в Postman
Обращение к объекту
request (запрос) и вызов функции addHeader с
аргументом - заголовком, который будет добавлен в запрос
Скрипты, описанные в разделе Tests
выполняются уже после того, как запрос был отправлен и получен ответ от сервера.
Помимо возможности обращаться к request, в разделе Tests мы также получаем доступ к
response. Обратиться к нему можно через
pm.response,
список всех доступных методов отобразится, после ввода pm.response и нажатия точки.
Именно в Tests чаще всего пишутся автоматизированные проверки, чтобы
убедиться, что ответ сервера соответствует ожиданиям. Чтобы написать тест вызовите
pm.test,
и передайте туда название теста и функцию, которая будет выполнена, а её результат
(true/false) изменит статус выполнения теста на PASS
либо FAIL.
Результаты выполнения таких автотестов отображаются в секции Test Results.
Пример скрипта в секции
Tests в Postman
Обращение к объекту
response (ответ), далее к переменной code,
в результате чего будет получен статус код ответа
pm.response.code
Обращение к объекту
response (ответ) и вызов функции json(),
которая приводит тело ответа в JSON формат либо выбрасывает ошибку, если тело
ответа невозможно привести к json
pm.response.json()
Зачем писать скрипты в Postman
Подытожим, с помощью скриптов в Postman можно автоматизировать часть работы,
написать автоматические проверки ответов сервера.
Функционал для написания
полноценных автотестов сильно ограничен, но для базового тестирования API этого достаточно.
Для написания полноценных и всеобъемлющих автоматизированных тестовых сценариев придётся
изучить язык программирования, например, Java и погрузиться в экосистему
тестовых фреймворков и инструментов, таких как Selenium, Rest Assured и
других.