Ця нотатка – продовження запису про знайомство з 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, мені потрібен тест скрипт задача котрого:

  1. перевірити status code response
  2. перевірити наявність строки token в body (за документацією тіло відповіді повинно мати таку схему: {“token”: “20043fcfc2b3e72”})
  3. зберегти токен у змінну колекції, для подальшого використання

Додаю скрипт у вкладку 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. В майбутньому планую додавати нотатки з більш детальним оглядом різноманітних можливостей цього інструменту.


Мітки: