Використання змінних оточення в Postman
У цій нотатці трохи розповім про використання змінних у Postman.
JavaScript API
По-перше, нагадаю, що змінні можна використовувати JavaScript API Postman. Наприклад, для тестів або в pre-request:
console.log(pm.variables.get('param')); console.log(pm.environment.get('param')); console.log(pm.globals.get('param'));
Об'єкти variables , globals і environment об'єкта pm зберігають значення змінних з відповідних scope-ів: змінних колекції, глобального scope і змінних оточення. Пріоритети отримання змінної:
- pm.environment містить значення змінних, зазначених для оточення,
- pm.variables містить значення змінних, позначених для колекції,
- pm.globals містить значення змінних, зазначених у глобальному оточенні.
Тобто в першу чергу змінна шукається в environment, далі в variables і, в кінці, в globals.
environment , globals містять методи set('parav_name', 'param_value') для запису значення відповідний scope.
Використання через >
Значення зі змінних можна отримати в адресному рядку, заголовках та запиті за допомогою синтаксису > :
Що ще?
У нашій команді це використовуємо в такий спосіб.
У нас є колекція запитів до сервісів, що розробляються. У колекції адресу сервісів не вказуються - замість них прописані підстановки зі змінних: > . У змінній > колекції (ця можливість доступна у безкоштовній версії) вказано значення за замовчуванням (адреса демо-стенду, оскільки цю колекцію можуть використовувати всі зацікавлені). Кожен у команді у своєму оточенні вказує адресу свого сервера для налагодження сервісів.Таким чином, достатньо в одному місці перевизначити значення змінної > і працювати з потрібним сервісом.
Як демо з створив колекцію, яка звертається до API сайту thetvdb.
Змінні apikey , userkey , username необхідно перевизначити в змінних оточення значеннями, отриманими при реєстрації на сайті thetvdb, і можна користуватися цими запитами для отримання інформації про серіали.
Home
Сьогодні ми поговоримо про безліч способів використання змінних у Postman.
Перше, що потрібно розуміти про змінних у Postman: вони організовуються в оточенні Postman-оточення – це просто колекція змінних, які можна використовувати в колекції Postman. "Add". Дайте оточенню ім'я (наприклад, "Pet Store"), а потім натисніть на "Add".
Оточення нічим вам не допоможе, поки ви не створите в ньому змінні, тому давайте цим і займемося. petId, а в "value" введіть 100.Натисніть на кнопку "Update", і ось ви додали нову змінну.
Закрийте вікно "Manage Environments". У правому верхньому кутку ви побачите меню, що випадає, і зараз там написано "No Environment" Клікніть на селекторі і виберіть "Pet Store". ".
У нас вже налаштована одна змінна - petId, що дорівнює 100. Давайте подивимося, як ми можемо її використовувати!
По-перше, її можна використовувати у URL. У запиті Verify Add Pet змініть URL з http://petstore.swagger.io/v2/pet/100 на http://petstore.swagger.io/v2/pet/>. Після додавання змінної ви побачите, як > перефарбуватиметься в помаранчевий колір. Postman розпізнав змінну з обраного оточення. Якщо ви забудете встановити оточення (про нього легко забути), ви побачите, що ваша змінна червоного кольору. Збережіть зміни та запустіть запит (можливо, спочатку вам знадобиться запустити запит "Add Pet", щоб у базі точно з'явився вихованець з id 100). Ви побачите, що запит відповідає вихованцю з id 100 за відповіддю на запит.
Змінну можна також використовувати у заголовках запиту. У цій колекції ми цим не займатимемося, але приклад такого використання – це відправка токена авторизації разом із запитом. Замість того, щоб кожного разу вводити токен, ви можете зберегти його як змінну на ім'я "token", а потім передавати її в заголовку так: >.
Повертаючись до нашої змінної petId: ми можемо використовувати її в тілі запиту. Відкрийте запит "Add Pet" та змініть тіло запиту, щоб воно виглядало так:
< "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 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" (див. статтю "Створення колекції Postman" для інструкцій) і перейменуємо копію в "Add Pet With No Id". Ми будемо використовувати цей запит для додавання вихованця без вказівки 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);
Це правило інтерпретує JSON-дані та встановлює значення id, повернене сервером, як нову змінну оточення на ім'я "newPetId". Зверніть увагу, що ця інструкція написана в старому стилі. Давайте збережемо наш запит і запустимо його. Після прогону запиту натисніть на іконку ока у верхньому правому кутку екрана. Це швидкий перегляд оточення, що дозволяє побачити його змінні.Ви повинні побачити нову змінну newPetId зі значенням, присвоєним id вашого свіжоствореного вихованця!Ця фіча дозволяє вам не мучитися зі створенням змінної заздалегідь: Postman зробить це за вас!
Ми розглянули тільки одну змінну – petId.
Більше інформації на цю тему ви можете отримати в курсі Тестування REST API
Попередні статті на цю тему