Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Postman - помощь в тестировании REST API

testng
rest
javascript
api
postman
cli
newman
Теги: #<Tag:0x00007f7b6193ca40> #<Tag:0x00007f7b6193c900> #<Tag:0x00007f7b6193c7c0> #<Tag:0x00007f7b6193c680> #<Tag:0x00007f7b6193c540> #<Tag:0x00007f7b6193c400> #<Tag:0x00007f7b6193c2c0>

#1

Последних несколько лет преимущественно занимаюсь тестированием API. И хочу поделиться с вами опытом использования такого инструмента как POSTMAN.

Зачем нужен POSTMAN

В повседневном рутинном процессе тестирования, когда на dev енв появляется новый функционал - не хочеться тратить время на написание тестов - на то что может изначально не работать но и несколько раз измениться ( и такое на практике бывает). По-этому вначале я приступаю к ручному тестирования позитивных кейсов.

Идеально для этого подходить вышеупомянутый POSTMAN.
Главная его фишка - это интуитивный UI с большим и гибким функционалом. Нет такого запроса который нельзя сделать через него ( у меня таких небыло) .

С чего начать?

Первым шагом я обычно создаю коллекцию - она объединяет в себе запросы по работе с одной сущностью - в моем приммере микросервсиной архитектуры это запросы на один микросервис.

Второй шаг - это использование переменных среды. Если у вас ,например , тесты могут запускаться для продакшена, для стейджинга для еще многих других. Действует правило что если
url используется больше одного раза то важно использовать переменные, что упрощает редактирование и зависимости.

Когда вы сохранили свою переменную в таком енв. то в самом запросе вы можете использовать просто название ключа экранирую его:

{{key}}/api/v2/playlist

Ну и последним этапом будет сам запрос. В коллекции вы выбираете “Add Request”, вводите имя - которое будет описывать этот запрос, выбираете вашу директорию. Для Get, Delete метода - все немного проще - зачастую нам нужна просто урл., а для POST, PUT - мы отправляем некоторые данные.

Динамические переменные

Еще одной из встроенных фишек есть динамические переменные. На фото нам сам Postman подсказывает их .
Это $guid , $randomint - от 0 до 1000, и $timestamp

Если нужно создать сущность и для нее нужно генерировать новое имя - я использую Pre-request scripts.
Как видно на скриншоте сам Postman предлагает шаблоны таких скриптов, что упрощает их использование.

В примере - это переменная “name” и она равна дате . И в самом запросе я вставляю эту переменную и каждый запрос у меня создается новое имя.

Заключение

Я раскрыл не все возможности, лишь те которые я использую каждый день и которые упрощают и ускоряют тестирование. Так же не описана возможность написания тестов, и запуск их в CI при помощи newman это cli runner тестов. Опит его настройки и использования я хотел бы описать в следующей статье.


Как тесты из Postman запустить в командной строке Newman