Последних несколько лет преимущественно занимаюсь тестированием 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 тестов. Опит его настройки и использования я хотел бы описать в следующей статье.