Ця нотатка – продовження запису про знайомство з Postman:
Postman – встановлення на Ubuntu 20.04 та початок роботи
В ознайомлювальній нотатці я створив колекцію з чотирьох запитів Booking API test:

В колекції є пункти, котрі мене не зовсім задовільняють:
- всі запити виконуються окремо вручну
- деякі значення потрібно копіювати з response і підставляти їх у змінні
- результати запитів ніяк не перевіряються
Мета цієї нотатки:
- налаштувати автоматичний послідовний запуск всіх запитів колекції через Postman Collection Runner
- зробити автоматичне встановлення у змінні значень, отриманих з response (token, bookingid)
- зробити так, щоб значення в полях firstName та lastName з запиту Create Booking, кожного разу рандомно генерувались
- додати деякі перевірки до response (status code, body value, тощо)
Postman pre-request scripts та test scripts
Postman надає можливість додавати скрипти на JavaScript, котрі будуть виконуватись до і після запиту. Схематично на рівні запиту послідовність виконання виглядає як:

Редагування скриптів доступно у відповідних вкладках редактору:

В першому запиті колекції – Create Token, мені потрібен тест скрипт задача котрого:
- перевірити status code response
- перевірити наявність строки token в body (за документацією тіло відповіді повинно мати таку схему: {“token”: “20043fcfc2b3e72”})
- зберегти токен у змінну колекції, для подальшого використання
Додаю скрипт у вкладку Tests запиту Create Token:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Body contains string token", function () {
pm.expect(pm.response.text()).to.include("token");
});
var jsonData = pm.response.json();
pm.collectionVariables.set("token", jsonData.token);Postman надає непоганий набір вже готових фрагментів з кодом, для найбільш поширених кейсів. Тож я лише вибрав ті, що мені потрібні і відредагував під свій тест:

За допомогою виклику pm.* здійснюється доступ до JavaScript API який надає Postman. В редакторі працює автодоповнення:

Запускаю запит, для перевірки чи все працює:

У вкладці Test Results можна подивитись результати тесту:

Перевіряю, чи коректно встановлена змінна token:

Поточне значення збігається з тим, що я отримав в response body, все ок.
Запит Add Booking
До запиту Add Booking додаю PreRequest Script, котрий генерує рандомні firstName і lastName, та зберігає їх у змінні колекції:

Body запиту:

Test Script до Add Booking – встановлюю отримане bookingid у змінну колекції:

Запит Get Booking By Id
В тестовому скрипті цього запиту я використовую multiple assertions для перевірки firstName і lastName. Значення з response body порівнюю зі значеннями, встановленими у відповідні collection variables під час виконання Create Booking:

Запит Delete Booking
Перевіряю statuse code відповіді:

Запуск колекції Booking API test
Переходжу до меню колекції:

В редакторі Runner все просто:
- можливість обрати запити для запуску та налаштувати послідовність їх виконання, використовуючи drag and drop (за замовчуванням відповідає послідовності розміщення запитів в колекції)
- спосіб запуску
- кількість ітерацій
- затримка в мілісекундах між запитами
- можливість зупинити прогін в разі error

Запускаю колекцію кнопкою Run Booking API test і отримую результат:

Це була друга ознайомлювальна нотатка про Postman. В майбутньому планую додавати нотатки з більш детальним оглядом різноманітних можливостей цього інструменту.